fengrui99 发表于 2018-8-29 11:53

【转帖】MUI在线更新 MUI在线差量资源更新 新手教程通俗易懂

本帖最后由 wushaominkk 于 2018-8-30 09:50 编辑

本文转载来自:https://www.frbkw.com/919/

MUI在线更新 MUI在线差量资源更新 新手教程通俗易懂更新不难,只是刚刚接触的时候会有很多误区的存在,才导致了更新功能看起来比较难看大家app的体积如果只是更新几个小文件 我是比较推选资源差更新的,如果要资源包升级也是一样的只是hbuilder可以直接做资源包更新,资源差只是需要自己手动制作

首先从服务器代码开始
0x1 建立一个upda.php文件里面写一个版本号就好 比如:https://frbkw.com/appupdate/upda.php


0x2 制作资源差更新包 这个可以参考官网 点我
步骤
1×1 新建一个界面
1×2 写一个按钮 添加js事件
<button class="mui-btn mui-btn-royal mui-btn-block">                                        检测更新
                              </button>
1×3 复制更新代码到 script标签中,修改自己服务器的版本地址 和更新文件地址
var wgtVer = null;

                        function plusReady() {
                              // Android处理返回键
//                              plus.key.addEventListener('backbutton', function() {
//                                        if(confirm('确认退出?')) {
//                                                plus.runtime.quit();
//                                        }
//                              }, false);
                              // 获取本地应用资源版本号
                              plus.runtime.getProperty(plus.runtime.appid, function(inf) {
                                        wgtVer = inf.version;
                                        console.log("当前应用版本:" + wgtVer);
                              });
                        }
                        if(window.plus) {
                              plusReady();
                        } else {
                              document.addEventListener('plusready', plusReady, false);
                        }
                        // 检测更新
                        var checkUrl = "https://frbkw.com/appupdate/upda.php?d=" +new Date().getTime();//添加时间参数防止缓存

                        function checkUpdate() {
                              plus.nativeUI.showWaiting("检测更新...");
                              var xhr = new XMLHttpRequest();
                              xhr.onreadystatechange = function() {
                                        switch(xhr.readyState) {
                                                case 4:
                                                      plus.nativeUI.closeWaiting();
                                                      if(xhr.status == 200) {
                                                                console.log("检测更新成功:" + xhr.responseText);
                                                                var newVer = xhr.responseText;
                                                                if(wgtVer && newVer && (wgtVer != newVer)) {
                                                                        downWgt(); // 下载升级包
                                                                } else {
                                                                        plus.nativeUI.alert("无新版本可更新!");
                                                                }
                                                      } else {
                                                                console.log("检测更新失败!");
                                                                plus.nativeUI.alert("检测更新失败!");
                                                      }
                                                      break;
                                                default:
                                                      break;
                                        }
                              }
                              xhr.open('GET', checkUrl);
                              xhr.send();
                        }
                        // 下载wgt文件
                        var wgtUrl = "https://frbkw.com/appupdate/frgx.wgtu";

                        function downWgt() {
                              plus.nativeUI.showWaiting("下载wgt文件...");
                              plus.downloader.createDownload(wgtUrl, {
                                        filename: "_doc/update/"
                              }, function(d, status) {
                                        if(status == 200) {
                                                console.log("下载wgt成功:" + d.filename);
                                                installWgt(d.filename); // 安装wgt包
                                        } else {
                                                console.log("下载wgt失败!");
                                                plus.nativeUI.alert("下载wgt失败!");
                                        }
                                        plus.nativeUI.closeWaiting();
                              }).start();
                        }
                        // 更新应用资源
                        function installWgt(path) {
                              plus.nativeUI.showWaiting("安装wgt文件...");
                              plus.runtime.install(path, {}, function() {
                                        plus.nativeUI.closeWaiting();
                                        console.log("安装wgt文件成功!");
                                        plus.nativeUI.alert("应用资源更新完成!", function() {
                                                plus.runtime.restart();
                                        });
                              }, function(e) {
                                        plus.nativeUI.closeWaiting();
                                        console.log("安装wgt文件失败[" + e.code + "]:" + e.message);
                                        plus.nativeUI.alert("安装wgt文件失败[" + e.code + "]:" + e.message);
                              });
                        };      
               
还是在建议在更新文件地址后面添加?d +参数 这是因为如果你在服务器更新了文件,在手机上因为缓存,获取到的还是之前的信息,加上一个时间参数就是为了防止缓存,让每次获取到的文件都是不同的)
var checkUrl = "https://frbkw.com/appupdate/upda.php?d=" +new Date().getTime();//添加时间参数防止缓存


转载声明如有疑问请访问:原帖

大涛哥 发表于 2018-8-29 12:08

这么前排嘛,头一次啊。学习下

kakasi 发表于 2018-8-29 12:11

不是太懂

kk1212 发表于 2018-8-29 12:14

我晕,我以为是MIUI资源呢,呵呵

雨之幽 发表于 2018-8-29 12:47

小米。。。。。。

cn52pojie 发表于 2018-8-29 13:37

帮顶!!!

fengrui99 发表于 2018-8-29 14:05

kk1212 发表于 2018-8-29 12:14
我晕,我以为是MIUI资源呢,呵呵

:Dweeqw有实战 从头写UI到后端配置的资源哦 下次发

听雨与风 发表于 2018-8-29 15:16

怎么用直接弄个成品出来吧,小白表示看不懂{:1_896:}

fengrui99 发表于 2018-8-30 08:41

听雨与风 发表于 2018-8-29 15:16
怎么用直接弄个成品出来吧,小白表示看不懂

成品的话这里有      https://frbkw.com/uiali/appui/
页: [1]
查看完整版本: 【转帖】MUI在线更新 MUI在线差量资源更新 新手教程通俗易懂