uni-app 调用h5+接口,实现整包更新
<p>// APP整包更新<br> //#ifdef APP-PLUS<br> let thatProgress=this;<br> console.log(thatProgress.progress)<br> let server = this.constant.baseUrl+"/system-service/api/app/update"; //检查更新地址<br> plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {<br> uni.request({<br> url: server+'?version='+widgetInfo.version+'&appid='+widgetInfo.appid,<br> method:'POST',<br> success: (res) => {<br> console.log(res)<br> let data=res.data<br> if (data.code === 200 && data.data.update) {<br> uni.showModal({ //提醒用户更新<br> title: "更新提示",<br> content: data.data.note,<br> cancelText:'立即更新',<br> confirmText:'取消',<br> success: (result) => {<br> if (result.cancel) { <br> var task=plus.downloader.createDownload( data.data.pkgUrl, {}, function(download,status){ //安装到手机的目录<br> if ( status == 200 ) { <br> <br> plus.runtime.install(download.filename);// 安装下载的apk文件<br> } else {<br> mui.toast("下载更新失败!");<br> plus.nativeUI.closeWaiting();<br> }<br> });<br> var showLoading = plus.nativeUI.showWaiting("正在下载");<br> //监听下载<br> task.addEventListener("statechanged", function (download, status) {<br> // console.log(download.state)<br> // console.log(task.downloadedSize)<br> switch (download.state) {<br> case 2:<br> showLoading.showWaiting("正在下载...");<br> break;<br> case 3:<br> //进度条百分比 totalSize为总量,baifen为当前下载的百分比<br> let prg = parseInt(<br> (parseFloat(task.downloadedSize) /parseFloat(task.totalSize)) *100<br> );<br> showLoading.setTitle("下载进度" +prg + "%");<br> if(prg==100){<br> plus.nativeUI.closeWaiting()<br> }<br> break;<br> case 4:<br> mui.toast("下载完成");<br> plus.nativeUI.closeWaiting();<br> break;<br> }<br> });<br> task.start();<br> }<br> }<br> })<br> }<br> },<br> fail: (res) =>{<br> console.log(res)<br> uni.showToast({<br> title:res.message,<br> icon:'none'<br> })<br> }<br> });<br> });</p><p>值得注意的是,iOS的更新只支持HTTPS服务协议,所以,服务端最好用HTTPS服务协议,这样可以解决更新的兼容性问题。</p><br><br>
来源:https://www.cnblogs.com/chenjianbao/p/13865461.html
頁:
[1]