返回首页 设计案例 文章动态 组件列表
联系我们

扫一扫微信二维码

uniapp更新版本


以下代码均为本人做记录使用,如有不当指出请评论指出


// 开始


//#ifdef APP-PLUS
const clientInfo = plus.push.getClientInfo()
console.log(clientInfo)
// plus.screen.lockOrientation('landscape');
const that = this
/* 版本检测 */
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
    const platform = {
        android: 1,
        ios: 2
    }
    const app_id = platform[this.$u.os()] || 0
    const version = (widgetInfo.version || 0).replace(/\./g, '')
    this.$u.api.getVersionInfo({
        app_id,
        version
    })
    .then(res => {
        const {
            code,
            data = {}
        } = res
        if (code == 200 && data.update && data.apk_url) {
            const ext = data.apk_url.split('.').pop().toLowerCase()
            if (ext == 'wgt') {
                // 资源包更新(用户无感-热更新)
                const t = setTimeout(() => {
                    clearTimeout(t)
                    installNewVersion(that.$u.trim(data.apk_url))
                }, 80)
            } else if (ext == 'apk') {
                // 安卓手机整包更新(用户手动更新-冷更新)
                const t = setTimeout(() => {
                    clearTimeout(t)
                    updateApp(data.apk_url, data.upgrade_point)
                }, 80)
            } else if (ext == 'ipa') {
                // ios整包更新(用户手动更新-冷更新)
                const t = setTimeout(() => {
                    clearTimeout(t)
                    // 通过商城更新
                    updateApp('https://apps.apple.com/cn/app/id1530328576', data.upgrade_point)
                }, 80)
            } else {
                // 其他方式更新(浏览器方式更新)
                const t = setTimeout(() => {
                    clearTimeout(t)
                    updateApp(data.apk_url, data.upgrade_point)
                }, 80)
            }
        }
    })
})
/* 资源包更新(用户无感-热更新) */
function installNewVersion(url) {
    uni.showLoading({
        title: that.$t('message.updateLoading'),
        mask: true
    })
    uni.downloadFile({
        url,
        fail: err => {
            console.log(err)
        },
        success: res => {
            if (res.statusCode == 200) {
                plus.runtime.install(res.tempFilePath, {
                    force: false
                }, function(res) {
                    const t = setTimeout(() => {
                        clearTimeout(t)
                        uni.hideLoading()
                        const s = setTimeout(() => {
                            clearTimeout(s)
                            plus.runtime.restart();
                        }, 200)
                    }, 200)
                }, function(err) {
                    uni.hideLoading()
                    console.log(err)
                    console.error('更新失败了');
                });
            }
        }
    })
}
/* 整包更新(用户手动更新-冷更新) */
function updateApp(url, msg = that.$t('message.updateMsg')) {
    uni.showModal({
        title: that.$t('message.updateTitle'),
        content: msg,
        showCancel: false,
        confirmText: that.$t('message.updateBtn'),
        success: (res) => {
            if (res.confirm) {
                plus.runtime.openURL(url)
            }
        }
    })
}


// 结束
建站咨询

点我咨询

建站咨询热线

153-2135-3313

QQ,新浪是独立账号信息不互通

Q Q 登陆

我已阅读并接受 《注册声明》与《版权声明》

没有账号?立即注册

QQ,新浪是独立账号信息不互通

Q Q 注册

我已阅读并接受 《注册声明》与《版权声明》

已有账号?

注册声明

一、用户注册、登陆,视为接受本协议的约束。

二、用户承诺遵守国家的法律法规及部门规章

三、用户承诺遵守“313组件库”的知识产权政策.

四、站内插件用于行业交流、学习。

五、用户侵犯第三人的知识产权,由该用户承担全部法律责任。

版权声明

313组件库(www.yu313.cn)站内所有涉及插件及代码由会员或站主上传而来,313组件库不拥有会员上传的插件及代码的版权

313组件库作为网络服务提供者,对非法转载,盗版行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,313组件库负有移除盗版和非法转载作品以及停止继续传播的义务。313组件库在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。

如果版权拥有者发现自己作品被侵权,请及时向313组件库提出权利通知,并将姓名、电话、身份证明、权属证明、具体链接(URL)及详细侵权情况描述发往版权举报专用通道,313组件库在收到相关举报文件后,在3个工作日内移除相关涉嫌侵权的内容

QQ:515184405(周一到周五,9:30-18:00)

首页 案例 组件 我的