微信小程序> 小程序wx.canIUse和wx.getSystemInfo踏的坑

小程序wx.canIUse和wx.getSystemInfo踏的坑

浏览量:2163 时间: 来源:weixin_34409357

今天在做新功能时,用到小程序的获取用户手机号API,如下:

getPhoneNumber: function(e) {     console.log(e.detail.errMsg)     console.log(e.detail.iv)     console.log(e.detail.encryptedData) }复制代码


拿到encryptedData和iv后,就可以在服务端进行解密,解密过程略过~


问题来了,官方给出说明是open-type=getPhoneNumber属性是1.2.0版本开始支持的,所以,1.2.0之前要自己做兼容处理。


然后就用了wx.canIUse进行判断,折腾了一会儿,发现不对,1.5.2基础库上返回也是false,如下:


官方给出说法,建议使用wx.getSystemInfo里面的SDKVersion进行判断。


wx.getSystemInfo的返回值:

 wx.getSystemInfo({  success: function(res) {    console.log(res.model)    console.log(res.pixelRatio)    console.log(res.windowWidth)    console.log(res.windowHeight)    console.log(res.language)    console.log(res.version)    console.log(res.platform)    console.log(res.SDKVersion)  }})复制代码

SDKVersion中1.1.0中才出现,所以要做个简单处理,把version转成int,然后进行判断:

function getSDKVersion(SDKVersion){  if (SDKVersion){    SDKVersion = parseInt(SDKVersion.replace(/./g, ''));  }  else SDKVersion = 0;  return SDKVersion;}复制代码


判断sdk版本:

var self = this;wx.getSystemInfo({  success: function(res){    var SDKVersion = res.SDKVersion;    SDKVersion = util.getSDKVersion(SDKVersion);    console.log(res);    console.log(SDKVersion);    if(SDKVersion  120){   // 1.2.0以下版本不支持获取手机号功能      self.setData({        noSupportPhone: true      })    }  }});复制代码

后面就是你自己去处理了~


欢迎关注我:




版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎