Taro实现小程序强制更新新版本

1.在app.tsx初始调用该方法

handleUpdate() {
    if (process.env.TARO_ENV === 'h5') {
        return;
    }
    const updateManager = Taro.getUpdateManager();
    updateManager.onCheckForUpdate(function(res) {
        // 请求完新版本信息的回调
        console.log(res.hasUpdate);
    });
    updateManager.onUpdateReady(function() {
        Taro.showModal({
            title: '更新提示',
            content: '新版本已经准备好,是否重启应用?',
            success: function(res) {
                if (res.confirm) {
                    // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                    updateManager.applyUpdate();
                }
            }
        });
        track(TRACKEVENTS.VERSION_UPGRADE, {
            page: '/',
            trigger: TRACKTRIGGER.APP_DID_MOUNT
        });
    });
    updateManager.onUpdateFailed(function() {
        // 新的版本下载失败
        errorReport(ERROREVENTS.VERSION_UPGRADE_FAILED, '新版本下载失败');
    });
}
    
export enum TRACKTRIGGER {
    DID_MOUNT = 'componentDidMount',
    DID_SHOW = 'componentDidShow',
    DID_HIDE = 'componentDidHide',
    REACH_BOTTOM = 'onReachBottom',
    PULL_DOWN_REFRESH = 'onPullDownRefresh',
    SHARE = 'ShareAppMessage',
    CLICK = 'click',
    PAGE_LOAD = 'page.onLoad',
    PAGE_SHOW = 'page.onShow',
    APP_DID_MOUNT = 'app.onLaunch',
    APP_SHOW = 'app.onShow'
}
export enum ERROREVENTS {
    JS_STACK_ERROR = '错误栈',
    JS_STACK_PROMISE_ERROR = 'Promise错误栈',
    TARO_ERROR = 'Taro错误边界',
    PAGE_NOT_FOUND = '页面未找到',
    HTTP_ERROR = '接口错误',
    OFFLINE = '无可用网络',
    VERSION_UPGRADE_FAILED = '版本下载失败'
}

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