美文网首页
微博登陆第二次调用接收不到回调

微博登陆第二次调用接收不到回调

作者: Erzyb | 来源:发表于2017-11-01 11:29 被阅读0次

    问题:在登陆页面中,第一次调用微博登陆可以正常,第二次调用时接收不到回调。
    场景:程序内多个地方调用三方登录,进行封装,以单例的模式在一个特有类中持有。

    原代码大概:

    public class OpenAccountHolder {
        public static SsoHandler getWBLogin(Activity activity){
            if (mSsoHandler == null){
                synchronized (OpenAccountHolder.class){
                    AuthInfo mAuthInfo = new AuthInfo(activity, Constants.WEIBO_APPKEY, Constants.URL_REDIRECT, Constants.SCOPE);
                    mSsoHandler = new SsoHandler(activity, mAuthInfo);
                }
            }
            return mSsoHandler;
        }
        public static IWeiboShareAPI getWBShare(){
        }
        public static Tencent getTencent(){
        }
        public static IWXAPI getWXApi(){
        }
    }
    

    在实际使用中发现,在同样的登陆页面,第一次调用微博登陆正常,回调正常运行,但是登出再登陆的时候,调用正常,但是接收不到回调。

    解决:

    public static SsoHandler getWBLogin(Activity activity) {
            if (mSsoHandler != null) {
                mSsoHandler = null;
            }
            AuthInfo mAuthInfo = new AuthInfo(activity, Constants.WEIBO_APPKEY, Constants.URL_REDIRECT, Constants.SCOPE);
            mSsoHandler = new SsoHandler(activity, mAuthInfo);
            return mSsoHandler;
        }
    

    微博登陆跟页面绑定,每次使用时候使用的activity参数应该是当前页面。不能使用之前的单例。
    大概是这个样子,还在研究,暂记。

    相关文章

      网友评论

          本文标题:微博登陆第二次调用接收不到回调

          本文链接:https://www.haomeiwen.com/subject/kkvwpxtx.html