react-native-wechat

来源:15-11 RN App社会化分享、第三方登录开发精讲-2【必备加分技能】

慕码人2389798

2019-08-15

在获取身份信息后,点击同意没有反应,返回到登录页面。设置的弹窗也有没有出来。这是什么原因啊?我想点击同意后,跳转到主页面。怎么操作???

  // 微信登陆授权
  weixinLogin = () => {
    let scope = 'snsapi_userinfo'
    let state = 'wechat_adk_mingjia'
    WeChat.isWXAppInstalled()
      .then((isInstalled) => {
        if (isInstalled) {
          //获取微信授权
          WeChat.sendAuthRequest(scope, state)
            .then(responseCode => {
              //授权成功获取token
              this.getAccessToken(responseCode);
            }).catch(error => {
              alert('授权错误:', error.message, [
                { text: '确定' }
              ])
            })
        } else {
          alert('没有安装微信', '请先安装微信', [
            { text: '确定' }
          ])
        }
      })
  }
  // 微信登陆获取token
  getAccessToken = (responseCode) => {
    let appId = '***';
    let secret = '***';
    switch (parseInt(responseCode.errCode)) {
      // 用户换取access_token的code,仅在ErrCode为0时有效  
      case 0:
        //获取token值
        getRequest('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + appId + '&secret=' + secret + '&code=' + responseCode.code + '&grant_type=authorization_code')
          .then(res => {
            //授权成功,获取用户头像等信息
            ToastAndroid.show('用户信息' + JSON.stringify(res),ToastAndroid.SHORT)
            this.getUserInfoFormWx(res);
            this.props.navigation.navigate('Select')
          })
          .catch(err => {
            alert(err)
          })
        break;
      case -4:
        //用户拒绝
        break;
      case -2:
        //用户取消
        break;
    }
  }
  // 获取微信用户信息
  getUserInfoFormWx = (res) => {
    console.log(res)
    getRequest('https://api.weixin.qq.com/sns/userinfo?access_token=' +
      res.access_token + '&openid=' + res.openid).then(res => {
        // ToastAndroid.show('用户信息' + JSON.stringify(res),ToastAndroid.SHORT)
      }
      ).catch(err => { })
  }
写回答

2回答

一个减肥的小胖子

2022-08-26

请问你这个问题后来解决了吗

0
0

CrazyCodeBoy

2019-08-16

在你调微信的回调方法中打个断点调试一下看有没有正常回调,如果没有通常是配置问题,可根据官方配置文档检查下配下是否OK,也可查看官库的issue。

0
2
一个减肥的小胖子
我也遇到了这个情况 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [WXApi handleOpenURL:url delegate:self]; } - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray> * __nullable restorableObjects))restorationHandler { // 触发回调方法 [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; return [WXApi handleOpenUniversalLink:userActivity delegate:self]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { // Triggers a callback event. // 触发回调事件 [RCTLinkingManager application:application openURL:url options:options]; return [WXApi handleOpenURL:url delegate:self]; } 不知道这一段代码到底应该放在AppDelegate.mm文件的哪个位置,老师可以解答一下吗,不是专业iOS开发,不懂里面的意思
2022-08-25
共2条回复

RN入门到进阶,打造高质量上线App

解锁React Native开发应用新姿势,React Native新版本热门技术

3144 学习 · 3241 问题

查看课程