uniapp 之 获取 app 的版本号 以及实现全量更新和增量更新
在实际开发中,我们经常要给app做相应的全量更新以及增量更新,什么是全量更新以及增量更新在此便不做赘述了;相应的获取版本号等信息uniapp官方文档中已经给出了相应的api实际开发中代码如下(建议把检查版本更新的代码放置在 App.vue 中)://版本更新checkVersion(){var baseUrl = $config.baseUrl // 获取自定义的配置文件的baseUr
·
在实际开发中,我们经常要给app做相应的全量更新以及增量更新,什么是全量更新以及增量更新在此便不做赘述了;相应的获取版本号等信息uniapp官方文档中已经给出了相应的api
实际开发中代码如下(建议把检查版本更新的代码放置在 App.vue 中):
//版本更新
checkVersion(){
var baseUrl = $config.baseUrl // 获取自定义的配置文件的baseUrl
var packVersion = plus.runtime.version
var appid = plus.runtime.appid
plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
uni.request({
url: `xxxxxxxxxxxxxx`, // 后端写的检查更新的接口
data: {
appId: appid, // 应用AppID(唯一标识)
packVersion: widgetInfo.version,
resPackVersion: widgetInfo.version, // 应用版本号 (资源包版本)
jsVersion: widgetInfo.name // 应用名称
},
success: (result) => {
console.log('result',result.data)
var data = result.data;
if (data.data.upgrade && data.data.path) {
if(data.data.upgrade == 'patch'){ // 资源包更新
console.log('data.data.path',data.data.path)
uni.downloadFile({ // 下载资源包
url: data.data.path,
success: (downloadResult) => {
console.log('downloadResult',downloadResult)
if (downloadResult.statusCode === 200) {
plus.runtime.install(downloadResult.tempFilePath, { // 安装资源包
force: false
}, function() {
console.log('install success...');
plus.runtime.restart(); // 重启APP
}, function(e) {
console.error('install fail...');
});
}
}
});
}else if(data.data.upgrade == 'full'){ // 整包更新
uni.showModal({
title: "更新提示",
content: data.data.msg,
success: (res) => {
if (res.confirm) {
var appurl = ''
if (plus.os.name == 'Android') {
appurl = data.data.path;
}
else{
appurl = data.data.pathIos;
}
plus.runtime.openURL(appurl); // 跳转应用发布平台
}
}
})
}
}
}
});
});
}
-
plus.runtime.version:获取客户端的版本名称;
-
plus.runtime.appid:获取当前应用的APPID;
-
plus.runtime.getProperty:获取指定APPID对应的应用信息;
该api回调函数的参数 widgetInfo
widgetInfo.version:应用版本号;
widgetInfo.name:应用名称
- uni.downloadFile:下载资源
-
plus.runtime.install:安装应用
-
plus.runtime.restart():重启当前的应用
-
plus.os.name:判断当前的运行平台
-
plus.runtime.openURL(url):调用第三方程序打开指定的URL
……
当然好用的api还有很多很多,需要大家去发掘总结,至此,本文到此结束,如有不足,望大家多多指点! 谢谢!
更多推荐
已为社区贡献4条内容
所有评论(0)