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

今天在做新功能时,用到小程序的获取用户手机号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
      })
    }
  }
});

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

原文发布于微信公众号 - 知晓程序员(bainaweb)

原文发表时间:2017-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ldpe2G的个人博客

Mxnet Scala Package 学习笔记 一

822
来自专栏数据结构与算法

My Vim

noip考完啦 不管成绩怎么样,以后不用Dev啦。 尝试一下传说中的Vim 我的Vim配置 Vim8.0 https://files.cnblogs.com/f...

4047
来自专栏蓝天

基于/proc统计网络流量的脚本

Ethname=`cat /proc/net/dev|grep $EthXname|awk -F"[: ]+" '{ printf("%s", $2); }'`

493
来自专栏SeanCheney的专栏

Scrapy使用随机IP代理插件Scrapy-Proxies

使用Scrapy_Proxies随机IP代理插件 https://github.com/aivarsk/scrapy-proxies ---- 安装: pip...

3098
来自专栏转载gongluck的CSDN博客

MFC中CFileDialog的用法

CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTS...

2725
来自专栏ml

NYOJ----蛇形填数

蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为...

2597
来自专栏坚毅的PHP

python日志按时间切分-----TimedRotatingFileHandler

原生loggging类+ TimedRotatingFileHandler类 实现按day hour second 切分 原生loggging类+ Timed...

3966
来自专栏有趣的django

CRM客户关系管理系统(十三) 第十三章、用户自定义认证第十四章、万能通用权限框架设计

1940
来自专栏SeanCheney的专栏

Scrapy1.4最新官方文档总结 2 Tutorial创建项目提取信息XPath简短介绍继续提取名人名言用爬虫提取信息保存数据提取下一页使用爬虫参数更多例子

这是官方文档的Tutorial(https://docs.scrapy.org/en/latest/intro/tutorial.html)。 推荐四个Pyth...

2966
来自专栏技术小黑屋

Gmail查找存档的邮件

邮件归档后将从您的收件箱中删除,但是仍保留在您的账户中,便于之后查找。归档操作就像将邮件放入档案柜中妥善保管一样,而不是将其丢入垃圾箱。

962

扫描关注云+社区