紫鷗 發表於 2020-10-23 17:55:00

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+'&amp;appid='+widgetInfo.appid,<br>                                        method:'POST',<br>                                success: (res) =&gt; {<br>                                                console.log(res)<br>                                                let data=res.data<br>                                                if (data.code === 200 &amp;&amp; data.data.update) {<br>                                                  uni.showModal({ //提醒用户更新<br>                                                        title: "更新提示",<br>                                                        content: data.data.note,<br>                                                                cancelText:'立即更新',<br>                                                                confirmText:'取消',<br>                                                        success: (result) =&gt; {<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) =&gt;{<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]
查看完整版本: uni-app 调用h5+接口,实现整包更新