uniapp安装包检查更新下载安装
第一步:检查当前版本是否是最新版
获取当前版本
jsvar systemInfo = uni.getSystemInfoSync(); var currentVersion = systemInfo.appVersion; // 1.0.6json# uni.getSystemInfoSync();结果示例如下 { "SDKVersion": "", "appId": "__UNI__3006FD1", "appLanguage": "zh-Hans", "appName": "菜就多练", "appVersion": "1.0.6", "appVersionCode": "100", "browserName": "safari", "browserVersion": "11.0", "deviceId": "1758873707713799136", "deviceModel": "iPhone", "deviceOrientation": "portrait", "devicePixelRatio": 2, "deviceType": "phone", "hostLanguage": "zh-CN", "hostName": "safari", "hostTheme": "light", "hostVersion": "11.0", "isUniAppX": false, "language": "zh-CN", "model": "iPhone", "osName": "ios", "osVersion": "11.0", "pixelRatio": 2, "platform": "ios", "safeArea": { "left": 0, "right": 367, "top": 0, "bottom": 812, "width": 367, "height": 812 }, "safeAreaInsets": { "top": 0, "right": 0, "bottom": 0, "left": 0 }, "screenHeight": 1600, "screenWidth": 2560, "statusBarHeight": 0, "system": "iOS 11.0", "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 HBuilderX", "uniCompileVersion": "4.45", "uniCompilerVersion": "4.45", "uniPlatform": "web", "uniRuntimeVersion": "4.45", "version": "", "windowBottom": 50, "windowHeight": 718, "windowTop": 44, "windowWidth": 367 }通过后端接口获取最新的版本,然后比较二者的版本号大小,通常版本采用 MMmmPPP 的格式,此格式可以通过 主版本 * 100000 + 次版本 * 1000 + 修订号 * 1 来比较版本号的大小
说明 位数 主版本(M) 0-99(2位) 次版本(m) 0-99(2位) 修订号(P) 0-999(3位) 每次发行之前,记得修改下 mainfest.json 里面的应用版本名称

第二步:创建下载任务并安装
js
uni.showLoading({
title: '更新安装包中...'
})
var dtask = plus.downloader.createDownload('apk的实际路径', {}, function(d, status) {
// 下载完成
if (status == 200) {
uni.hideLoading()
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, {}, function(error) {
uni.showToast({
title: '安装失败',
duration: 1500
});
})
} else {
uni.showToast({
title: '更新安装包失败',
duration: 1500
});
}
});
dtask.start();