forked from lingochamp/ShareLoginLib
-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Description
通过观察微信官方demo的log可以看到。分享以后点击“回到app”,才会去启动WXEntryActivity(这里我们使用别名所以是EventHandlerActivity),然后触发回到方法。假如我们点击“留在微信”,点返回是不会触发任何回调事件。
而该库采用的策略是先启动一个透明Activity,这样会出现一个问题,分享后留在微信,此时不触发回调,我们的透明Activity不会被销毁。附上我的解决方案(分享测试通过,登录未测试):
ShareLoginLib.java
private static void doAction(...){
//判断如果是微信平台,则先不启动透明Activity,假如有回调微信会帮我们启动
if(curPlatform instanceof WechatPlatform){
curPlatform.doShare(activity,shareType, shareContent, listener);
}else {
onCreateListener = new EventHandlerActivity.OnCreateListener() {
@Override
public void onCreate(EventHandlerActivity eventActivity) {
curPlatform.doShare(eventActivity, shareType, shareContent, listener);
}
};
activity.startActivity(new Intent(activity, EventHandlerActivity.class));
activity.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
wrPlatform = new WeakReference<>(curPlatform);
}
static void onActivityCreate(EventHandlerActivity activity) {
if(onCreateListener != null) { //判空
onCreateListener.onCreate(activity);
}
}
Metadata
Metadata
Assignees
Labels
No labels