Open weizhiyang opened 6 years ago
export function sendAuthRequest(scopes, state) { return new Promise((resolve, reject) => { WeChat.sendAuthRequest(scopes, state, () => {}); emitter.once('SendAuth.Resp', resp => { //以下代码不走了,不知道为什么 if (resp.errCode === 0) { resolve(resp); } else { reject(new WechatError(resp)); } }); }); }
安卓接收微信的响应通过 WXEntryActivity 接收的 1 确保微信平台登记的包名对应项目下是否包含 <applicationId | 包名>.wxapi 这个包,注意包名一定要和登记的一致 2 AndroidManifest.xml 文件中是否添加了这个 activity
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/app_name" />
3 WXEntryActivity 类中 onCreate 方法下一定要调用 WeChatModule.handleIntent(getIntent());
检查问题,在 onCreate 方法中打断点,如果吊起微信后点击授权如果停在 onCreate 方法中代表微信已经有应答了,就没有问题,如果没有执行这个方法代表项目配置有问题
我目前的情况是这样的,APP首次启动,点击微信登录没有任何问题。一旦进入我的游戏主页面之后,再回来点击微信登录就没有任何返回值。是什么监听被覆盖了吗??还是冲突了,找不到原因啊!!!
@zc-Mukden 如果调用后不跳转到微信你可以在这里和这里(把 api.sendReq(req) 结果log出来)打断点
如果第一个位置执行不到说明这个库的js部分有问题,没有调用到原生方法。 如果第二个部分返回结果为false,则说明请求发送过程失败了。
如果跳转到微信,点击没返回结果,用上面的方式再检查一次
因为看不到项目,只能在方法的输入和输出位置检查,如果这些位置都有正确应答,说明是业务逻辑的问题
@yyyyu 我onCreate走了断点,但是 WeChat.sendAuthRequest("snsapi_userinfo","wechat_sdk").then(responseCode => { alert(11); }) 还是没回调啊
@yyyyu 这里不走了啊
alert不会弹
@yyyyu 进断点了,有error错误,什么原因,我这边断点是先走这里,再走onCreate
@Alvin365 注意隐藏图片中的 openId 这个是微信sdk,从命名来看你的错误代码是禁止授权,你的微信平台申请的应用是否具有权限授权那,或者是否签名正确,debug 版本也需要包名、签名一致才能调试
@yyyyu 断点只能debug啊,release是可以跳转授权的,但是上面js的alert也没法谈出,我在android原生这边也加个alert吧,感谢大神耐心解答
@Alvin365 debug 版本也可以使用 release 签名的,在 build.gradle debug 版本加上签名配置就可以
buildTypes {
debug {
debuggable true
// sign for wechat test
signingConfig signingConfigs.release
}
release {
// ...
signingConfig signingConfigs.release
}
}
@yyyyu 大神,errorCode= 0,这里的断点,JS那边还是没拿到回调
应该是监听过多的问题吧,因为我不进那个监听很多的游戏页面的话,一切正常。。能回调。进了游戏页面,100%不回调。把游戏页面代码全注释调,只返回一个空的View,微信也正常回调。但是,我只是注释添加的监听事件的话,还是不能正常回调。这让我很没有头绪。。。。。
如果有兴趣的话可以试试我写的 https://github.com/yyyyu/react-native-wechat
楼主解决了吗,我也遇到同样的问题
参考这篇文章https://www.cnblogs.com/zhangdw/p/6194345.html
解决步骤: 检查MainApplication中是否有如下代码 `import com.theweflex.react.WeChatPackage; // Add this line before public class MainActivity ...
/**
创建Package
名称为你应用的包名+ wxapi,在新建的包中创建一个名字为WXEntryActivity的类。如包名为com.platformproject,目录结构和代码如下
在AndroidManifest.xml中加入微信Activity,如下
我也是 调出微信授权界面后 点击授权后没有进入回调