收藏
回答

鸿蒙开发 第三方微信登录,可以拉起微信,但无法接受来自微信的数据?

鸿蒙开发  第三方微信登录,可以拉起微信,但无法接受来自微信的数据?

回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    03-03

    你好,详细说明问题出现的流程(但无法接受来自微信的数据?

    03-03
    有用
    回复 16
    • 雪芽蓝域
      雪芽蓝域
      03-03
      进入微信点击允许后,没有返回授权code,  private handleWeChatCallIfNeed(want: Want) {
          Logger.error("admin", "微信登录返回bundleName=="+want.bundleName);
          Logger.error("admin", "微信登录返回fds=="+JSON.stringify(want.fds));
          Logger.error("admin", "微信登录返回entities=="+JSON.stringify(want.entities));
          Logger.error("admin", "微信登录返回parameters=="+JSON.stringify(want.parameters));
          Logger.error("admin", "微信登录返回==",JSON.stringify(want));
          WXApi.handleWant(want, WXEventHandler)
        }
      执行后WXApi.handleWant(want, WXEventHandler),WXEventHandler也没有反应
      03-03
      回复
    • 雪芽蓝域
      雪芽蓝域
      03-03
      执行后WXApi.handleWant(want, WXEventHandler),WXEventHandler也没有反应
      import * as wxopensdk from '@tencent/wechat_open_sdk';
      import { WxSuccessBean } from '../AskBean';
      import { CommonConstant } from '../common/CommonConstant';
      import Logger from '../common/Logger';
      import { emitter } from '@kit.BasicServicesKit';
      import JSONUtils from '../../ui/pages/web/JSONUtils';
      export type OnWXReq = (req: wxopensdk.BaseReq) => void
      export type OnWXResp = (resp: wxopensdk.BaseResp) => void
      const kTag = "admin-WXApiEventHandlerImpl"
      class WXApiEventHandlerImpl implements wxopensdk.WXApiEventHandler {
        private onReqCallbacks: Map<OnWXReq, OnWXReq> = new Map
        private onRespCallbacks: Map<OnWXResp, OnWXResp> = new Map
        registerOnWXReqCallback(on: OnWXReq) {
            Logger.error("admin", "registerOnWXReqCallback:%s", JSON.stringify(on))
          this.onReqCallbacks.set(on, on)
        }
        unregisterOnWXReqCallback(on: OnWXReq) {
            Logger.error("admin", "unregisterOnWXReqCallback:%s", JSON.stringify(on))
          this.onReqCallbacks.delete(on)
        }
        registerOnWXRespCallback(on: OnWXResp) {
            Logger.error("admin", "registerOnWXRespCallback:%s", JSON.stringify(on))
          this.onRespCallbacks.set(on, on)
        }
        unregisterOnWXRespCallback(on: OnWXResp) {
            Logger.error("admin", "unregisterOnWXRespCallback:%s", JSON.stringify(on))
          this.onRespCallbacks.delete(on)
        }
        onReq(req: wxopensdk.BaseReq): void {
          Logger.error("admin", "onReq:%s", JSON.stringify(req))
          this.onReqCallbacks.forEach((on) => {
            on(req)
          })
          Logger.error("admin", "BaseResp====" + req.name)
          Logger.error("admin", "BaseResp====" + req.type)
          Logger.error("admin", "json====" + JSON.stringify(req))
          const wxSuccessBean = JSONUtils
            .jsonStr2Bean(WxSuccessBean, JSON.stringify(req))
          Logger.error("admin", "code====" + wxSuccessBean?.code)
          Logger.error("admin", "status====" + wxSuccessBean?.state)
          let eventData: emitter.EventData = {
            data: {
              'code': wxSuccessBean?.code,
              'state': wxSuccessBean?.state,
            }
          };
          emitter.emit(CommonConstant.LOGIN_SUCCESS_BY_WX,eventData)
        }
        onResp(resp: wxopensdk.BaseResp): void {
            Logger.error("admin", "onResp:%s", JSON.stringify(resp))
          this.onRespCallbacks.forEach((on) => {
            on(resp)
          })
        }
      }
      export const WXApi = wxopensdk.WXAPIFactory.createWXAPI(CommonConstant.APP_WX_APPID)
      export const WXEventHandler = new WXApiEventHandlerImpl
      03-03
      回复
    • 雪芽蓝域
      雪芽蓝域
      03-03
      您好,可以加微信帮忙远程一下看一下吗
      03-03
      回复
    • 社区技术运营专员--许涛
      社区技术运营专员--许涛
      03-03回复雪芽蓝域
      复现问题时麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点,bundleid、identifier、appid和opensdk的调用时间点(可以社区私信提供)和open帐号后台移动应用签名包名截图,私信后请在评论区回复
      03-03
      回复
    • 雪芽蓝域
      雪芽蓝域
      03-03
      已私信发过去了,因为发布证书无法调试,使用的调试证书有影响吗?
      03-03
      回复
    查看更多(11)
  • 智能回答 智能回答 本次回答由AI生成
    03-03
    有用
    回复 1
    • 雪芽蓝域
      雪芽蓝域
      发表于移动端
      03-03
      可以微信分享,分享到朋友圈,微信登录也可跳转到授权页面,就是授权后没有返回数据
      03-03
      回复
登录 后发表内容