《微信小程序开发从入门到实战》学习五十六

6.1 基础API

6.1.2 兼容性检查API

解决兼容性问题除了判断 用户的微信版本,还可以使用兼容性API直接判断小程序的API、回调、参数和组件是否在当前版本可用。它的具体使用方式如下:

boolean wx.canIUse(string schema)

可以通过wx.canIUse接口返回的boolean值来判断当前版本是否兼容某个功能。string类型的schema入参变量需要有开发者来构造,它有两种格式,分别如下:

 ${API}.${method}.${param}.${options} // 用于判断API兼容性

 ${component}.${attributr}.${option} // 用于判断组件兼容性

其中${API}代表API名字;${method}代表调用方式,有效值为return,success,object,callback;${param}代表参数或者返回值;${options} 代表参数的可选值;

 ${component}代表组件名称;${attributr}代表组件属性;${option} 代表组件属性的可选值。

下面是使用兼容性检查API的例子:

    wx.canIUse('openBluetoothAdapter') // 是否支持 wx.openBluetoothAdapter接口

    wx.canIUse('getSystemInfoSync.return.screenWidth') // 系统信息是否返回screenWidth

    wx.canIUse('getSystemInfo.success.screenWidth') // 系统信息回调是否包含screenWidth

    wx.canIUse('showToast.object.image') // wx.showToast 参数是否支持传入image属性

    wx.canIUse('onCompassChange.callback.direction') // 罗盘回调函数参数是否包含direction

    wx.canIUse('request.object.method.GET') // wx.request参数的method是否支持GET值

    wx.canIUse('live-player') // 是否支持live-player组件

    wx.canIUse('text.selectable') // 是否支持text组件的selectable属性

    wx.canIUse('button.open-type.contact') // button组件open-type属性是否支持contact

6.1.3 版本更新API

管理员在微信公众平台后台发布新版本的小程序后,无法立刻影响所有现网用户。如果某个用户本地有小程序的历史版本,新版本发布后的一段时间内打开的可能还是旧版本,最坏情况24小时。

  小程序检测更新的逻辑是微信App实现的。24小时太久,开发者可以使用版本更新API让小程序主动更新到最新的版本。版本更新API从基础库1.9.0开始支持。

  使用版本更新API需要获取小程序的版本更新管理器,代码如下:

const updateManager = wx.getUpdateManager()

接下来调用updateManager对象中的方法,让小程序实现版本更新的功能。

updateManager有四个方法,分别如下:

  1. updateManager.onCheckForUpdate(function callback)监听向微信后台请求检查更新结果事件。
  2. updateManager.onUpdateReady(function callback)监听小程序有版本更新事件,客户端会主动触发下载更新,下载成功后调用callback函数
  3. updateManager.applyUpdate()强制小程序重启并使用新版本
  4. updateManager.onUpdateFailed(function callback)监听小程序更新失败事件

以下为版本更新API的使用示例:

const updateManager = wx.getUpdateManager()

    updateManager.onCheckForUpdate(function (res) {

      console.log(res.hasUpdate) // 请求完新版本信息的回调 

    })

    updateManager.onUpdateReady(function () {

      // 新的版本已经下载好,提示用户是否立即重启小程序应用更新

      wx.showModal({

        title: '更新提示',

        content: '新版本已经准备好,是否重启应用?',

        success: function (res) {

          if (res.confirm) {

            updateManager.applyUpdate() // 调用applyUpdate并更新小程序

          } 

        }

      })

    })

    updateManager.onUpdateFailed(function (){

      // 新版本下载失败

    })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值