集成sharesdk后 遇到一个问题 分享到微信和朋友圈 点击返回的时候发现无法回到app
private void sharedToThirdPlatform() {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,微信、QQ和QQ空间等平台使用
oks.setTitle("我的标题");
// titleUrl QQ和QQ空间跳转链接
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("震惊,sharesdk竟然。。。");
// imagePath是图片的网络路径 不设置没有缩略图
oks.setImageUrl("http://img.mp.sohu.com/upload/20170614/1b236c0dfb2d4d098e08b9b94db043aa.png");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
// oks.setImagePath("https://pic3.zhimg.com/80/7d6e12985dfdb526e902443a7dc9abfe_hd.jpg");
// url在微信、微博,Facebook等平台中使用 跳转地址
oks.setUrl("http://img.mp.sohu.com/upload/20170614/1b236c0dfb2d4d098e08b9b94db043aa.png");
// comment是我对这条分享的评论,仅在人人网使用
oks.setComment("我是测试评论文本");
oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
@Override
public void onShare(Platform platform, Platform.ShareParams shareParams) {
if (Wechat.NAME.equals(platform.getName())) {
}
}
});
// 启动分享GUI
oks.show(this);
}
后来按网上的方法将 WXEntryActivity的启动模式设置为android:launchMode="singleTask"就可以了
<!--微信分享回调 -->
<activity
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
但是虽然能返回app了 又遇到另外一个问题 app无法操作 表面覆盖了一层界面 需要点击物理返回键一次才能操作
用sharesdk的回调方法都没有执行 我猜测这一层界面是WXEntryActivity,因为微信开发文档里面就是在这个Activity执行的,我想最终还是会走这个类的方法 然后就尝试在WXEntryActivity的回调方法里面打印 最后发现确实如此 分享成功后点击返回app baseResp.getType=2
然后就是解决问题了
@Override
public void onResp(BaseResp baseResp) {
switch (baseResp.getType()){
case 2: //微信分享成功返回app的回调
finish();
break;
}
}
判断type 如果==2,则说明分享成功 此时finish掉透明的WXEntryActivity界面 然后app就可以操作了
另外 附上app下build.gradle文件里面的配置
apply plugin: 'com.mob.sdk'
MobSDK {
appKey "xxxxxxx" //自己注册生成的
appSecret "xxxxxxxxxx" //自己注册生成的
ShareSDK {
devInfo {
WechatMoments { //朋友圈
appKey "去微信开放平台申请"
appSecret "去微信开放平台申请"
callbackUri "http://www.sharesdk.cn"
shareByAppClient true
bypassApproval="false"
}
Wechat { //微信
appId "去微信开放平台申请"
appSecret "去微信开放平台申请"
userName "gh_afb25ac019c9"
path "pages/index/index.html?id=1"
withShareTicket true
shareByAppClient true
miniprogramType 2
bypassApproval false
}
}
}
}
本文详细介绍了在集成ShareSDK后,解决分享至微信及朋友圈后无法正确返回APP的问题。通过调整WXEntryActivity的启动模式,并在回调方法中处理分享成功后的返回逻辑,实现了APP的正常操作。
2424





