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

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

作者: 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