跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

【SX10006】微信授权或分享之后没有回调

微信授权或分享之后没有回调

问题描述

微信授权或分享之后没有回调

解决方案

1.打印Debug模式日志,查看回调Activity配置是否正常

配置正常

正确的配置会在debug模式中提示

2.注如果确认回调Activity及manifest xml中微信相关配置都正确,需要确认WXEntryActivity.java中没有复写其他SDK(如支付、微信原生登录)的回调逻辑,UShare SDK要求留一个空类这里需要注意一点,WXEntryActivity也是一个Activity,也需要写入AndroidManifest中:

<activity
           android:name=".wxapi.WXEntryActivity"
           android:configChanges="keyboardHidden|orientation|screenSize"
           android:exported="true"
           android:screenOrientation="portrait"
           android:theme="@android:style/Theme.Translucent.NoTitleBar"/

3.如果分享和授权登录一直没有回调,WxEntryActivity方法重写时,必须在重写方法最开始加上我们之前的重载

重载

4.如果分享没有回调,请检查WxEntryActivity必须在wxapi包下,包名实体文件夹路径必须和微信官方平台提交包名一致

回调2

5.由于您加了支付的相关功能,在WXEntryActivity中写入了你们自己的逻辑,而把我们的逻辑覆盖了,导致不能回调,如下代码所示即可

publicclassWXEntryActivity extends WXCallbackActivity{
@Override
publicvoid onResp(BaseResp resp){
if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
switch(resp.errCode){
case0:
Toast.makeText(this,"支付成功!",Toast.LENGTH_LONG).show();
break;
case-2:
Toast.makeText(this,"支付取消!",Toast.LENGTH_LONG).show();
break;
case-1:
Toast.makeText(this,"支付失败!",Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(this,"支付出错!",Toast.LENGTH_LONG).show();
break;
}
}else{
        super.onResp(resp);//一定要加super,实现我们的方法,否则不能回调
}
}
}
  • 注:这里如果要使用微信原生SDK实现登录,分享使用UShare,可以参考支付的回调处理方式,但注意这种做法不推荐,有可能仍然无法确保回调执行

6.微信分享之后选择留在微信是没有回调

7.本地微信没有登录,微信授权或分享会跳转到登录界面,该界面的返回没有回调。