当前位置:   article > 正文

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

wx.getsysteminfo这个为什么不返回camera得数据

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

  1. getPhoneNumber: function(e) {
  2. console.log(e.detail.errMsg)
  3. console.log(e.detail.iv)
  4. console.log(e.detail.encryptedData)
  5. }复制代码


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


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


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


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


wx.getSystemInfo的返回值:

  1. wx.getSystemInfo({
  2. success: function(res) {
  3. console.log(res.model)
  4. console.log(res.pixelRatio)
  5. console.log(res.windowWidth)
  6. console.log(res.windowHeight)
  7. console.log(res.language)
  8. console.log(res.version)
  9. console.log(res.platform)
  10. console.log(res.SDKVersion)
  11. }
  12. })复制代码

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

  1. function getSDKVersion(SDKVersion){
  2. if (SDKVersion){
  3. SDKVersion = parseInt(SDKVersion.replace(/\./g, ''));
  4. }
  5. else SDKVersion = 0;
  6. return SDKVersion;
  7. }复制代码


判断sdk版本:

  1. var self = this;
  2. wx.getSystemInfo({
  3. success: function(res){
  4. var SDKVersion = res.SDKVersion;
  5. SDKVersion = util.getSDKVersion(SDKVersion);
  6. console.log(res);
  7. console.log(SDKVersion);
  8. if(SDKVersion < 120){ // 1.2.0以下版本不支持获取手机号功能
  9. self.setData({
  10. noSupportPhone: true
  11. })
  12. }
  13. }
  14. });复制代码

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


欢迎关注我:




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/312362
推荐阅读
相关标签
  

闽ICP备14008679号