Skip to content

微信分享优化方案建议 #20

@jeepc

Description

@jeepc

通过观察微信官方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);
        }
}

log:
屏幕快照 2019-03-22 下午1 10 28

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions