- 鸿蒙App接入微信SDK唤起登录前必须退后台一次,否则onResp回调不执行?
App启动直接唤起微信登录时onResp回调不会调用,二次唤起或者唤起微信登录前先退一次后台onResp才会正常执行 新建了一个空项目,使用了主项目的bundleid与证书,运行后是一样的,必须二次才会执行回调,排除主项目其他干扰 微信SDK版本:"@tencent/wechat_open_sdk": "1.0.11", 回调: class WXApiEventHandlerImpl implements wxopensdk.WXApiEventHandler { onResp(resp: wxopensdk.BaseResp): void { console.info("onResp:%s", JSON.stringify(resp)) this.onRespCallbacks.forEach((on) => { on(resp) }) } } export const WXEventHandler = new WXApiEventHandlerImpl 首次唤起登录: [图片] 再次唤起登录 [图片] 而且有个疑问,onResp在onNewWant之前执行,那么onNewWant里的 WXApi.handleWant(want, WXEventHandler) 有没有意义呢 微信登录代码 唤起登录页面 aboutToAppear(): void { if (WXApi.isWXAppInstalled()) { this.wxResp = (resp) => { let t = resp.type if (t === 1) { // 登录 let r = resp as wxopensdk.SendAuthResp console.log('SendAuthResp ' + r.code) } } WXEventHandler.registerOnWXRespCallback(this.wxResp) } } // 微信登录 private async wxLoginAction() { let req = new wxopensdk.SendAuthReq req.nonAutomatic = true req.scope = 'snsapi_userinfo' // 固定写死,不允许修改 req.state = 'open_wxlogin' let finished = await WXApi.sendReq(getContext(this) as common.UIAbilityContext, req) }
04-28 - 鸿蒙App接入微信SDK唤起时提示BundleID校验失败问题?
问题现象就是集成微信SDK1.0.11版本之后,唤起微信登录一直提示bundleID校验失败。 鸿蒙项目使用开发者账号申请的调试证书,非自动签名 微信开放平台鸿蒙app信息已审核通过 通过 bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO) 获取的 appIdentifier 与申请时一致,但是 bundleInfo.signatureInfo.appId 为包名_加密串,使用release模式打包后是一样的,但是申请时候的BundleID为包名,不知道有没有影响 搜论坛里有说自动签名问题、真机/模拟器问题 等,均没有解决问题,希望能得到帮助
04-25