//http://xixio.cn/2018/08/18/regeneratorruntime-is-not-defined-%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%B8%AD%E4%BD%BF%E7%94%A8async%E5%87%BD%E6%95%B0/ // const regeneratorRuntime = require('../lib/runtime'); class UpdateManager { checkForUpdate(updateManager) { return new Promise((resolve, reject) => { updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 resolve(res.hasUpdate); }); }); } fetchUpdate(updateManager) { return new Promise((resolve, reject) => { updateManager.onUpdateReady(function () { resolve(true); }); updateManager.onUpdateFailed(function () { resolve(false); }); }); } async update() { let updateManager; if (wx.canIUse('getUpdateManager')) { updateManager = wx.getUpdateManager(); const hasUpdate = await this.checkForUpdate(updateManager); if (hasUpdate) { const fetchOK = await this.fetchUpdate(updateManager); if (fetchOK) { wx.showModal({ title: '已经有新版本了~', content: '更新小程序', showCancel: false, success(res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate() } } }); } else { // 新的版本下载失败或者不支持updateManager wx.showModal({ title: '已经有新版本了~', showCancel: false, content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开~' }); } } } } } export default new UpdateManager();