android app整包更新,uniapp整包更新

uniapp整包更新

更新时间:2020-06-28 13:42

一.需求场景

App用户想在系统发布新版本之后,自动更新到最新的版本.

二.解决方案

1.解决思路

1.1用户在进入app时,提示用户更新到最新版本.

1.2android用户确定更新到最新版,则自动下载最版本的安装包;

1.3android用户下载完最新的安装包之后,跳转到安装界面;

1.4iOS用户确定更新到最新版本,则跳转到App Store下载更新页面;

2.修改App.vue中的代码

2.1在onShow方法中添加如下代码:

// #ifdef APP-PLUS

updateApp(this.$api.HOST, this.$api.UPDATEDAPP);

// #endif

说明:

1.这里需要用到条件编译,因为只有app版本才会有自动更新的功能.

2.调用的方法传入两个参数,第一个是主机地址,第二个是更新接口,这两个参数可以合成一个.

2.2在添加app更新方法和app下载方法

更新方法:

/**

* Title: 更新app

* Description: 更新,下载新版本app

* Param: 无

* Return: 无

*/

function updateApp(HOST, URL) {

let oldVersion = plus.runtime.version;

plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {

uni.request({

url: HOST + URL,

success(res) {

let newVersion = res.data.data.version;

if (newVersion > oldVersion) {

if (plus.os.name == "Android") {

uni.showModal({

title: "温馨提示",

content: "检测到新版本,是否更新?",

confirmText: "立即更新",

cancelText: "下次再说",

success(res) {

if (res.confirm == true) {

downloadApp(HOST);

}

}

});

} else {

uni.showToast({

title: "新版本已发布,请到App Store下载最新版",

icon: "none",

duration: 3000

});

}

}

}

});

});

}

下载方法:

/**

* Title: 下载app

* Description: 更新,下载新版本app

* Param: 无

* Return: 无

*/

function downloadApp(HOST) {

uni.showLoading({

title: "正在下载中,预计1-3分钟,请稍后..."

});

const downloadTask = uni.downloadFile({

url: HOST + "apk/e10adc3949ba59abbe56e057f20f883e.apk",

success(res) {

uni.hideLoading();

uni.showToast({

title: "下载完成"

});

setTimeout(function() {

plus.runtime.openFile(

res.tempFilePath

);

}, 2000);

}

});

}

说明:

1.更新方法和下载方法都要放在条件编译中,// #ifdef APP-PLUS  // #endif.

2.这里的iOS仅给出了更新提示,可以根据自己的需要修改成跳转到App Store商店的地址.

3.这里之所以使用的uni.showLoading的进度提示,是因为调用h5+的原生进度条真机实测过于卡顿,效果很差.

以上就是uniapp整包更新的解决方案.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值