//#ifdef APP-PLUS let config = { updateType: "", version: "", title: "升级,有新版本需要更新,请点击升级", con: "升级功能", downUrl: "", //请设置下载apk地址,ios设置苹果商店的连接地址; hidCancelbtn: false, //可选 隐藏取消按钮 btnBgColor: "#22bb77", //可选 按钮颜色 updateBtnText: "立即升级", //可选, 升级按钮文字, verCode: "", //最新apk版本号 可选 只有Android整包升级可以设置这个参数 ,可以避免用户取消安装apk时,重复下载问题,如果不传的话,apk将会重新下载 hidBackBtn: true, // 只有android整包更新才可以控制后台更新按钮是否显示,热更新是不显示这个按钮的 topImgBg: plus.io.convertLocalFileSystemURL("_www/static/") + "/upgrade/ug2.png" }; let update = function() { if (config.updateType == "1") { //整包升级 let oldAppVer = plus.runtime.version; //获取本地 if (config.version>oldAppVer) { //验证本地版本号 updatePackage(); } } if (config.updateType == "2") { //wgt升级 plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) { //第一步要获取本地的wgt版本号;这是异步方法; let oldwgtver = wgtinfo.version; if (config.version>oldwgtver) { //验证本地版本 updateWgt(); } }); } if (config.updateType == "3") { //wgt静默升级 plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) { //第一步要获取本地的wgt版本号;这是异步方法; let oldwgtver = wgtinfo.version; if (config.version>oldwgtver) { //验证本地版本 uni.downloadFile({ url: config.downUrl, success: (downloadResult) => { //console.log(downloadResult) if (downloadResult.statusCode === 200) { plus.runtime.install(downloadResult.tempFilePath, { force: false }, function() { console.log('install success...'); plus.runtime.restart(); }, function(e) { console.error('install fail...'); }); } } }); } }); } }; let updatePackage = function() { //app版本号获取方式 //plus.runtime.version; 与服务器的版本进行比较; const upDater = uni.requireNativePlugin("CL-UpDater"); //console.log(defaultvar.title); let options = { title: config.title, con: config.con, downUrl: config.downUrl, //请设置下载apk地址,ios设置苹果商店的连接地址; hidCancelbtn: config.hidCancelbtn, //可选 隐藏取消按钮 btnBgColor: config.btnBgColor, //可选 按钮颜色 updateBtnText: config.updateBtnText, //可选, 升级按钮文字, verCode: config.verCode, //最新apk版本号 可选 只有Android整包升级可以设置这个参数 ,可以避免用户取消安装apk时,重复下载问题,如果不传的话,apk将会重新下载 hidBackBtn: config.hidBackBtn, // 只有android整包更新才可以控制后台更新按钮是否显示,热更新是不显示这个按钮的 topImgBg: config.topImgBg //可选 除非需要自定义头部logo,否则不需要传; } //必需提供下载地址; upDater.startUpdate(options, () => { console.log("弹框关闭了"); }); }; let updateWgt = function() { //注意:服务器的热更新版本号必需大于本地wgt版本号 //http://192.168.50.201/update.wgt, let that = this; //第一步要获取本地的wgt版本号; const upDater = uni.requireNativePlugin("CL-UpDater"); let options = { title: config.title, con: config.con, downUrl: config.downUrl, hidCancelbtn: config.hidCancelbtn, //可选 隐藏取消按钮, btnBgColor: config.btnBgColor, updateBtnText: config.updateBtnText, //升级按钮文字, topImgBg: config.topImgBg //除非需要自定义头部logo,否则不需要传; } //第一步创建文件下载路径,并创建文件; plus.io.requestFileSystem(plus.io.PUBLIC_DOWNLOADS, function(fobject) { //设置文件下载根路径; let rootPath = fobject.root.fullPath; upDater.wgtUpdate(options, rootPath, result => { if (result) { var pathNew = plus.io.convertAbsoluteFileSystem(result); console.log(pathNew); plus.runtime.install(pathNew, { force: false }, function() { //进行重新启动; plus.runtime.restart(); }, (e) => { uni.showToast({ title: '安装升级包失败' + JSON.stringify(e), icon: 'none' }) }); } }, () => { console.log("弹框关闭了"); }); }) }; let appUpgrade = function(param){ config.updateType = param.updateType; config.version = param.version; config.con = param.con; const pf = uni.getSystemInfoSync().platform; if(pf=='android') config.downUrl = uni.$u.http.config.baseURL+param.androidUrl; if(pf=='ios') config.downUrl = param.iosUrl; config.hidCancelbtn = param.isForceUpdate==1?true:false update(); } export { appUpgrade } //#endif //#ifdef MP let mpUpgrade = function(){ const updateManager = uni.getUpdateManager(); updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if(res.hasUpdate){ updateManager.onUpdateReady(function (res) { uni.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success(res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate(); } } }); }); } }); } export { mpUpgrade } //#endif