小程序笔记(六)基础库版本兼容控制处理(新版获取手机号为例)

  • Post author:
  • Post category:小程序



1、搬一下微信文档的版本号比较法,搬到util.js里面。


兼容 | 微信开放文档

//#region 版本兼容判断
const compareVersion = (v1, v2) => {
  v1 = v1.split('.')
  v2 = v2.split('.')
  const len = Math.max(v1.length, v2.length)

  while (v1.length < len) {
    v1.push('0')
  }
  while (v2.length < len) {
    v2.push('0')
  }

  for (let i = 0; i < len; i++) {
    const num1 = parseInt(v1[i])
    const num2 = parseInt(v2[i])

    if (num1 > num2) {
      return 1
    } else if (num1 < num2) {
      return -1
    }
  }

  return 0
}
//#endregion

//#region 当前版本
const version =()=>{
 let version=wx.getSystemInfoSync().SDKVersion;
 return version;
}
//#endregion

module.exports = {
  compareVersion:compareVersion,
  version:version
}


2、checkversion.js 简易封装便于多个地方使用和修改对比的版本号

最新版的获取手机号的button的基础库版本是2.21.2,事件回调获取到动态令牌

code,

更新了可以多获取到一个code到后台换取到手机号。

let util=require("util.js");

let getPhoneNumberversion="2.21.2";

const showModMSG=(title,content)=>{
  wx.showModal({
    title: title,
    content: content
  });
}

const checkGetPhoneVersion = ()=>{
  if (util.compareVersion(util.version(),getPhoneNumberversion) >= 0) {
    return true
  } else {
    showModMSG('提示','当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。');
     return false;
   }
}

module.exports = {
  checkGetPhoneVersion:checkGetPhoneVersion
}

3、使用基础库版本兼容

wxml

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">按钮</button>

js

const util = require("../../utils/util"),
      version = require("../../utils/checkversion");
Page({

  getPhoneNumber (e) {
    if(version.checkGetPhoneVersion()){
      console.log("版本大于或等于2.21.2,获取到code")
    }else{
      console.log("版本未到2.21.2,获取不到code,兼容旧版的encryptedData,vi,到后台解密处理")
    }
    
  },
})

改版本位置,在工具右上角

获取到返回的新版信息,带code

将code拿到后台就可以换取到手机号。

请求接口:

phonenumber.getPhoneNumber | 微信开放文档

祝大家一次成功。\(^o^)/。



版权声明:本文为as66708原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。