项目接入友盟分享 微信登录
2019-10-18 本文已影响0人
Ad大成
友盟application
public class MyApp extends Application {
public static MyApp myApp;
@Override
public void onCreate() {
super.onCreate();
myApp=this;
initAppKey();
}
private void initAppKey() {
UMConfigure.setLogEnabled(true);
// 友盟的appkey
UMConfigure.init(this,"5d65e8cc3fc1957a20000369"
,"Umeng",UMConfigure.DEVICE_TYPE_PHONE,"669c30a9584623e70e8cd01b0381dcb4");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
//豆瓣RENREN平台目前只能在服务器端配置
PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
}
}
界面
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn_share;
private UMShareListener mShareListener;
private ShareAction mShareAction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initPermission();
btn_share = findViewById(R.id.btn_ok);
btn_share.setOnClickListener(this);
initView();
}
//权限
private void initPermission() {
if(Build.VERSION.SDK_INT>=23){
String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE};
ActivityCompat.requestPermissions(this,mPermissionList,123);
}
}
private void initView(){
mShareListener = new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onResult(SHARE_MEDIA share_media) {
}
@Override
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
}
@Override
public void onCancel(SHARE_MEDIA share_media) {
}
};
mShareAction = new ShareAction(MainActivity.this).setDisplayList(
SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.WEIXIN_FAVORITE,
SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,
SHARE_MEDIA.ALIPAY, SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN,
SHARE_MEDIA.SMS, SHARE_MEDIA.EMAIL, SHARE_MEDIA.YNOTE,
SHARE_MEDIA.EVERNOTE, SHARE_MEDIA.LAIWANG, SHARE_MEDIA.LAIWANG_DYNAMIC,
SHARE_MEDIA.LINKEDIN, SHARE_MEDIA.YIXIN, SHARE_MEDIA.YIXIN_CIRCLE,
SHARE_MEDIA.TENCENT, SHARE_MEDIA.FACEBOOK, SHARE_MEDIA.TWITTER,
SHARE_MEDIA.WHATSAPP, SHARE_MEDIA.GOOGLEPLUS, SHARE_MEDIA.LINE,
SHARE_MEDIA.INSTAGRAM, SHARE_MEDIA.KAKAO, SHARE_MEDIA.PINTEREST,
SHARE_MEDIA.POCKET, SHARE_MEDIA.TUMBLR, SHARE_MEDIA.FLICKR,
SHARE_MEDIA.FOURSQUARE, SHARE_MEDIA.MORE)
.addButton("复制文本", "复制文本", "umeng_socialize_copy", "umeng_socialize_copy")
.addButton("复制链接", "复制链接", "umeng_socialize_copyurl", "umeng_socialize_copyurl")
.setShareboardclickCallback(new ShareBoardlistener() {
@Override
public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
if (snsPlatform.mShowWord.equals("复制文本")) {
Toast.makeText(MainActivity.this, "复制文本按钮", Toast.LENGTH_LONG).show();
} else if (snsPlatform.mShowWord.equals("复制链接")) {
Toast.makeText(MainActivity.this, "复制链接按钮", Toast.LENGTH_LONG).show();
} else {
UMWeb web = new UMWeb("http://cdwan.cn/index");
web.setTitle("来自分享面板标题");
web.setDescription("来自分享面板内容");
web.setThumb(new UMImage(MainActivity.this, R.drawable.ic_launcher_background));
new ShareAction(MainActivity.this).withMedia(web)
.setPlatform(share_media)
.setCallback(mShareListener)
.share();
}
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_ok:
mShareAction.open();
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
}
注册清单自行去官方文档查找
微信登录 其中签名文件和appid必须用你自己注册应用的要一致
sdk
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
WXEntryActivity
public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, "wx9da9b470bcb8c751", false);
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
finish();
}
@Override
public void onReq(BaseReq baseReq) {
}
@Override
public void onResp(BaseResp baseResp) {
String result = "";
Toast.makeText(this, baseResp.errCode+"-"+baseResp.errStr+"openId"+baseResp.openId+"code", Toast.LENGTH_LONG).show();
switch (baseResp.errCode) {
case BaseResp.ErrCode.ERR_OK:
String code = ((SendAuth.Resp) baseResp).code;
SharedPreferences WxSp = getApplicationContext().getSharedPreferences("code", Context.MODE_PRIVATE);
SharedPreferences.Editor WxSpEditor = WxSp.edit();
WxSpEditor.putString("code", code);
WxSpEditor.apply();
Intent intent = new Intent();
intent.setAction("authlogin");
WXEntryActivity.this.sendBroadcast(intent);
finish();
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = "发送取消";
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = "发送被拒绝";
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();
break;
default:
result = "发送返回";
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();
break;
}
}
}
界面
public class MainActivity extends AppCompatActivity {
IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loginWX();
}
private void loginWX(){
api = WXAPIFactory.createWXAPI(this, "wx9da9b470bcb8c751", true);
SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "wx_login_duzun";
api.sendReq(req);
}
}