UpdateManager

UpdateManager 对象,用来管理更新,可通过 wx.getUpdateManager 接口获取实例。

方法

UpdateManager.applyUpdate()

强制微信小程序重启并使用新版本。在微信小程序新版本下载完成后(即收到 onUpdateReady 回调)调用。

UpdateManager.onCheckForUpdate(function listener)

监听向微信后台请求检查更新结果事件。微信在微信小程序每次启动(包括热启动)时自动检查更新,不需由开发者主动触发。

UpdateManager.onUpdateReady(function listener)

监听微信小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调

UpdateManager.onUpdateFailed(function listener)

监听微信小程序更新失败事件。微信小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)后回调

示例代码

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) {
        // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
        updateManager.applyUpdate()
      }
    }
  })
})

updateManager.onUpdateFailed(function () {
  // 新版本下载失败
})

Tips

  1. 微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试
  2. 微信小程序开发版/体验版没有「版本」概念,所以无法在开发版/体验版上测试更版本更新情况

PluginUpdateManager.onCheckForUpdate 监听函数

微信小程序插件:不支持

功能描述

监听向微信后台请求检查插件更新结果事件。微信在微信小程序每次启动(包括热启动)时自动检查插件更新,不需由开发者主动触发。

参数

function listener

向微信后台请求检查插件更新结果事件的监听函数

参数

Object res
属性 类型 说明
hasUpdate boolean 是否有插件新版本
pluginVersion string 插件新版本号。仅当 hasUpdatetrue 时返回

PluginUpdateManager

基础库 2.25.0 开始支持,低版本需做兼容处理。

PluginUpdateManager 对象,用来管理插件更新,可通过 wx.getPluginUpdateManager 接口获取实例。

方法

PluginUpdateManager.onCheckForUpdate(function listener)

监听向微信后台请求检查插件更新结果事件。微信在微信小程序每次启动(包括热启动)时自动检查插件更新,不需由开发者主动触发。

PluginUpdateManager.onUpdateReady(function listener)

监听插件有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调

PluginUpdateManager.onUpdateFailed(function listener)

监听插件更新失败事件。插件有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)后回调

示例代码

const pluginUpdateManager = wx.getPluginUpdateManager({
  pluginId: 'wx1234567890abcdef'
})

pluginUpdateManager.onCheckForUpdate(function (res) {
  // 请求完插件新版本信息的回调
  console.log(res.hasUpdate)
  if (res.hasUpdate) {
    console.log(res.pluginVersion)
  }
})

pluginUpdateManager.onUpdateReady(function (res) {
  wx.showModal({
    title: '更新提示',
    content: '插件新版本已经准备好,是否重启应用?',
    success: function (modalRes) {
      if (modalRes.confirm) {
        // 插件新版本已经下载好,调用 applyUpdate 应用新版本并重启
        wx.getUpdateManager().applyUpdate()
      }
    }
  })
})

pluginUpdateManager.onUpdateFailed(function (res) {
  // 插件新版本下载失败
  console.log(res.pluginVersion)
})

UpdateManager

基础库 1.9.90 开始支持,低版本需做兼容处理。

微信小程序插件:不支持

微信 Windows 版:支持

微信 鸿蒙 OS 版:支持

功能描述

获取全局唯一的版本更新管理器,用于管理微信小程序更新。关于微信小程序的更新机制,可以查看运行机制文档。

返回值

UpdateManager

更新管理器对象

示例代码

示例代码

wx.updateWeChatApp(Object object)

基础库 2.12.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:支持

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.12.0

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

更新客户端版本。当判断用户微信小程序所在客户端版本过低时,可使用该接口跳转到更新微信页面。

参数

Object object

属性 类型 默认值 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

微信小程序 wx.getAppAuthorizeSetting()

基础库 2.20.1 开始支持,低版本需做兼容处理。

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.21.3

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

获取微信APP授权设置

返回值

Object

属性 类型 说明
albumAuthorized ‘authorized’/’denied’/’not determined’ 允许微信使用相册的开关(仅 iOS 有效)
bluetoothAuthorized ‘authorized’/’denied’/’not determined’ 允许微信使用蓝牙的开关(安卓基础库 3.5.0 以上有效)
cameraAuthorized ‘authorized’/’denied’/’not determined’ 允许微信使用摄像头的开关
locationAuthorized ‘authorized’/’denied’/’not determined’ 允许微信使用定位的开关
locationReducedAccuracy boolean 定位准确度。true 表示模糊定位,false 表示精确定位(仅 iOS 有效)
microphoneAuthorized ‘authorized’/’denied’/’not determined’ 允许微信使用麦克风的开关
notificationAuthorized ‘authorized’/’denied’/’not determined’ 允许微信通知的开关
notificationAlertAuthorized ‘authorized’/’denied’/’not determined’ 允许微信通知带有提醒的开关(仅 iOS 有效)
notificationBadgeAuthorized ‘authorized’/’denied’/’not determined’ 允许微信通知带有标记的开关(仅 iOS 有效)
notificationSoundAuthorized ‘authorized’/’denied’/’not determined’ 允许微信通知带有声音的开关(仅 iOS 有效)
phoneCalendarAuthorized ‘authorized’/’denied’/’not determined’ 允许微信读写日历的开关

示例代码

const appAuthorizeSetting = wx.getAppAuthorizeSetting()

console.log(appAuthorizeSetting.albumAuthorized)
console.log(appAuthorizeSetting.bluetoothAuthorized)
console.log(appAuthorizeSetting.cameraAuthorized)
console.log(appAuthorizeSetting.locationAuthorized)
console.log(appAuthorizeSetting.locationReducedAccuracy)
console.log(appAuthorizeSetting.microphoneAuthorized)
console.log(appAuthorizeSetting.notificationAlertAuthorized)
console.log(appAuthorizeSetting.notificationAuthorized)
console.log(appAuthorizeSetting.notificationBadgeAuthorized)
console.log(appAuthorizeSetting.notificationSoundAuthorized)
console.log(appAuthorizeSetting.phoneCalendarAuthorized)

返回值说明

'authorized' 表示已经获得授权,无需再次请求授权;'denied' 表示请求授权被拒绝,无法再次请求授权;(此情况需要引导用户打开系统设置,在设置页中打开权限)'non determined' 表示尚未请求授权,会在微信下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)