解决微博分享 出现授权界面后直接闪退回自己的APP界面

weiboApi = WeiboShareSDK.createWeiboAPI(context, Constants.WEIBO_APP_KEY);
        weiboApi.registerApp();
	final AuthInfo authInfo = new AuthInfo(context, Constants.WEIBO_APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
        ssoHandler = new SsoHandler((Activity) context, authInfo);
        ssoHandler.authorize(new WeiboAuthListener() {
            @Override
            public void onComplete(Bundle bundle) {
                Log.i("haha","认证完成");
                Oauth2AccessToken mAccessToken = Oauth2AccessToken.parseAccessToken(bundle);
                if (mAccessToken.isSessionValid()) {
 
                    String weibo_token = mAccessToken.getToken();
                    //weiboApi.sendRequest((Activity) context, weibo_request);
                    weiboApi.sendRequest((Activity) context, weibo_request, authInfo, weibo_token, new WeiboAuthListener() {
                        @Override
                        public void onComplete(Bundle bundle) {
                            Constants.getToastView(context,"分享成功").show();
                        }
 
                        @Override
                        public void onWeiboException(WeiboException e) {
                            Constants.getToastView(context,"分享异常").show();
                        }
 
                        @Override
                        public void onCancel() {
                            Constants.getToastView(context,"取消分享").show();
                        }
                    });
                }
            }
 
            @Override
            public void onWeiboException(WeiboException e) {
                Log.i("haha","认证异常:message:"+e.getMessage()+"  local:"+e.getLocalizedMessage()+" cause:  "+e.getCause());
            }
 
            @Override
            public void onCancel() {
 
                Log.i("haha","认证退出");
 
            }

我调用微博分享是出现这样的状况:

调用web授权分享成功,调用客户端授权分享 发现 到授权界面后直接闪退回自己的APP界面。

开始一直以为是分享的代码有问题。然后打印Log发现,授权没有回调,自己去查看最新的微博sdk文档,发现自己在activity的onActivityResult没有回调(之前写了的,后来修改代码删除,又忘记加上了)。

 

if(dialog_share != null && dialog_share.getSsoHandler() != null)
        {
            dialog_share.getSsoHandler().authorizeCallBack(requestCode,resultCode,data);
        }

 

在activity的onActivityResult中加上ssoHandler的回调方法。

 

并且以上我写的分享代码  中的 分享结果的回调只能在 web授权分享才有。如果想客户端授权分享 想要有分享结果的回调,则必须实现

 

(1)修改AndroidManifest.xml

(2)Activity实现IWeiboHandler.Response接⼜

(3)Activity处理IWeiboHandler.Response的⽅法

(4)Activity处理onNewIntent⽅法

 

开始微博分享前,

在AndroidManifest.xml中为当前分享所在页⾯的Activity添加接收消息intent-filter,声明Action为:com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY

在分享当前页⾯实现WeiboHandler.Response接⼜,

实现Activity的onNewIntent方法。

 

详细请看微博sdk文档。地址:https://github.com/sinaweibosdk/weibo_android_sdk/tree/master/%E6%96%B0%E6%96%87%E6%A1%A3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序邦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值