能打开小程序的初版本微信

能打开小程序的初版本微信,第1张

你好,基础库 /低版本兼容

兼容

小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。

开发者可以通过以下方式进行低版本的兼容:

1. 版本号比较

微信客户端和小程序基础库的版本号风格为 Major.Minor.Patch(主版本号 . 次版本号 . 修订版本号)。

文档中会在组件,API等页面描述中带上各个功能所要求的最低基础库版本号。

开发者可以在小程序中通过调用 wx.getAppBaseInfo 获取到当前小程序运行的基础库的版本号。通过版本号比较的方式进行运行低版本兼容逻辑。

版本号比较适用于所有情况。部分场景下也可以使用后面提到的方法完成。

<=2.20.1 的基础库请使用 wx.getSystemInfo]((wx.getSystemInfo)) 或者 wx.getSystemInfoSync 获取基础库版本

注意:不可以直接使用字符串比较的方法进行版本号比较。例如 '2.29.1' >'2.3.0' 是 false 的

版本号比较可以参考以下代码:

function 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 = 0i <leni++) {

const num1 = parseInt(v1[i])

const num2 = parseInt(v2[i])

if (num1 >num2) {

return 1

} else if (num1 <num2) {

return -1

}

}

return 0

}

compareVersion('1.11.0', '1.9.9') // 1

const version = wx.getAppBaseInfo().SDKVersion

if (compareVersion(version, '1.1.0') >= 0) {

wx.openBluetoothAdapter()

} else {

// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示

wx.showModal({

title: '提示',

content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'

})

}

2. API 存在判断

对于新增的 API,可以通过判断该 API 是否存在来判断是否支持用户使用的基础库版本。例如:

if (wx.openBluetoothAdapter) {

wx.openBluetoothAdapter()

} else {

// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示

wx.showModal({

title: '提示',

content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'

})

}

3. wx.canIUse

除了直接通过版本号判断,也可以通过 wx.canIUse 来判断是否可以在该基础库版本下直接使用。例如:

API 参数或返回值

对于 API 的参数或者返回值有新增的参数,可以判断用以下代码判断。

1,只能bindtap点击事件或者发起支付回调后才能触发,bindsubmit发送表单不行,不过现在的订阅消息已经不需要formid,所以改起来挺容易的.

2,wx.requestSubscribeMessage里的success(res){} fail(res){} 并不是分别点击确定取消触发的回调,而是wx.requestSubscribeMessage调用成功和失败的回调,一般在fail里可以打印下错误msg,还有个complete(res){}是调用成功失败后都会触发的回调

3,只支持基础库2.8.2以上,所以如果你有事件是放在success或者complete回调里调用,需要向下兼容,判断用户的基础库版本,注意,这个错误不会走调用失败fail的回调 而是编译器直接报错no function

wx.getSystemInfo({

success: function (res) {

var version = res.SDKVersion

 version = version.replace(/\./g, "")

 console.log(version)

  if (parseInt(version) >= 282){

wx.requestSubscribeMessage({

success(res){

do something

}

})

}

else{

do something

}

4,点击下方"总保持以上选择,不再询问"后 貌似清了缓存也再也不出来提示框?貌似是这样 但是success fail complete回调里的事件还会触发.只是不再d出提示框.

先暂时这些


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11736554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存