uniapp 更新APP

您所在的位置:网站首页 uniapp调用第三方程序打开指定的url uniapp 更新APP

uniapp 更新APP

2023-06-04 20:33| 来源: 网络整理| 查看: 265

/** App更新调用,在App.vue中调用  * 最少字段 {"version":1.0.0,"file":"appUrl"}  * 返回:{"update":true,"file":"appUrl"}  * */

let $updateApp = (CloudAppUrl)=>{     return new Promise((resolve,reject)=>{         //获取本地版本信息         let App = plus.runtime.getProperty(plus.runtime.appid,(info) => {             if(CloudAppUrl.version !== undefined && CloudAppUrl.version !== null){                 if(CloudAppUrl.file !== undefined && CloudAppUrl.file !== null){                     if(CloudAppUrl.version > info.version){                         resolve({"update":true,"file":CloudAppUrl.file})                     }                 }             }             reject({"update":false})         })             }) }

/** 开始下载更新  * 参数:url地址  * 无返回:直接执行  */

let $download = (fileUrl)=>{     let options = {         method:'GET',         timeout:10,         retry:1     }     // 创建开始下载     let down = plus.downloader.createDownload(fileUrl,options,function(d,status){                  if(status === 200){             // 下载成功以后调用APP安装             plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename,{},{},function(err){                 plus.nativeUI.toast("更新程序安装失败")             }))         }else{             plus.downloader.clear()             down.abort()             // 请求失败             plus.nativeUI.toast('更新程序下载失败:'+status)         }     })     try{         // 开始下载         down.start()         // 获取当前下载进度         let showLoadin = plus.nativeUI.showWaiting("开始下载....")         down.addEventListener('statechanged',function(task,status){             // 给下载人物设置一个监听             switch(task.state){                 case 1:                     showLoadin.setTitle("开始下载.....")                     break;                 case 2:                     showLoadin.setTitle("已连接到服务器")                     break;                 case 3:                     // console.log("当前",task.downloadedSize / task.totalSize * 100)                                          let pr = parseInt((parseFloat(task.downloadedSize)/parseFloat(task.totalSize)*100))                     showLoadin.setTitle('已下载:' +pr+ '%' )                     break;                 case 4:                     plus.nativeUI.closeWaiting()                     // 下载完成                     break;             }         })     }catch(err){         down.abort()         plus.nativeUI.closeWaiting();         throw new Error("更新程序出现错误")     } } 

// app更新 // 参数为对象:{"version":1.0.0,"file":"appUrl"}  

let $updateAppRequest = (updateUrl)=>{     uni.getNetworkType({         success:res=>{             // 当前是否有网络连接             if(res.networkType === 'none'){                 console.log('当前无网络连接');                 uni.showToast({                     icon:'none',                     title:'当前无网络连接',                     duration:3000                 })             }else{                 // 判断版本是否需要更新                 $updateApp(updateUrl).then((res)=>{                     if(res.update){                         uni.showModal({                             title:'有新版本更新!',                             content:'立即更新后才能使用!',                             showCancel:false,//隐藏取消按钮                             confirmText:'立即更新',                             confirmColor:'#576b95',                             success:function(){                                 // 调用下载                                 $download(res.file)                             }                         })                     }                 })                              }         }     }) }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3