button 调用getPhoneNumber获取授权ios和安卓表现不一致?
发布于 5 年前 作者 kongyan 1039 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

IOS 打印 e.detail.errMsg 值为:getPhoneNumber:fail user deny

安卓打印 e.detail.errMsg 值为:getPhoneNumber:user deny

同一个方法,有时候体验版授权弹框 会显示如下弹框,显示 “取消” 和 “确认授权” 按钮,当点击取消时候 安卓打印 e.detail.errMsg 值为:getPhoneNumber:fail:cancel to confirm login。

大部分时候会显示 “拒绝”和“允许”

  • 预期表现
  • 复现路径
  • 提供一个最简复现 Demo
<button class="getPhone-button" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">手机号授权</button>
//获取授权
 
getPhoneNumber: function (e) {
 
    let that = this;
 
    wx.checkSession({
 
      success: function () {
 
         let ency = e.detail.encryptedData;
 
         let iv = e.detail.iv;
 
         // e.detail.errMsg == 'getPhoneNumber:fail:cancel to confirm login'
 
         // getPhoneNumber:user deny 安卓表现
 
         // getPhoneNumber:fail user deny ios 表现
 
         if(e.detail.errMsg !="getPhoneNumber:fail user deny"){
 
      // if (e.detail.errMsg =='getPhoneNumber:fail user deny' || e.detail.errMsg =='getPhoneNumber:user deny') {
 
      // if(e.detail.errMsg !="getPhoneNumber:ok"){
 
     //拒绝授权
 
             console.log("拒绝授权"+e.detail.errMsg);
 
        }else{
 
             console.log("============允许授权"+e.detail.errMsg);
 
        }
 
     },
 
     fail: function () {
 
          console.log("session_key 已经失效,需要重新执行登录流程");
 
     }
 
  });
 
},
1 回复

嗯,不止你提到的这些,还有相当一部分API存在fail回调android与ios不一致的情况,多测试多兼容

回到顶部