吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3893|回复: 8
收起左侧

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

[复制链接]
fengrui99 发表于 2018-8-29 11:53
本帖最后由 wushaominkk 于 2018-8-30 09:50 编辑

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

MUI在线更新 MUI在线差量资源更新 新手教程通俗易懂更新不难,只是刚刚接触的时候会有很多误区的存在,才导致了更新功能看起来比较难看大家app的体积  如果只是更新几个小文件 我是比较推选资源差更新的,如果要资源包升级也是一样的只是hbuilder可以直接做资源包更新,资源差只是需要自己手动制作
QQ截图20180829115050.png
首先从服务器代码开始
0x1 建立一个upda.php文件里面写一个版本号就好 比如:https://frbkw.com/appupdate/upda.php


0x2 制作资源差更新包 这个可以参考官网 点我
步骤
1×1 新建一个界面
1×2 写一个按钮 添加js事件
[Asm] 纯文本查看 复制代码
<button class="mui-btn mui-btn-royal mui-btn-block">                                        检测更新
                                </button>

1×3 复制更新代码到 script标签中,修改自己服务器的版本地址 和更新文件地址
[JavaScript] 纯文本查看 复制代码
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 +参数 这是因为如果你在服务器更新了文件,在手机上因为缓存,获取到的还是之前的信息,加上一个时间参数就是为了防止缓存,让每次获取到的文件都是不同的)
[JavaScript] 纯文本查看 复制代码
var checkUrl = "https://frbkw.com/appupdate/upda.php?d=" +  new Date().getTime();//添加时间参数防止缓存



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

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
catter + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

大涛哥 发表于 2018-8-29 12:08
这么前排嘛,头一次啊。学习下
kakasi 发表于 2018-8-29 12:11
kk1212 发表于 2018-8-29 12:14
雨之幽 发表于 2018-8-29 12:47
小米。。。。。。
cn52pojie 发表于 2018-8-29 13:37
帮顶!!!
 楼主| fengrui99 发表于 2018-8-29 14:05
kk1212 发表于 2018-8-29 12:14
我晕,我以为是  MIUI资源呢,呵呵

有实战 从头写UI到后端配置的资源哦 下次发
听雨与风 发表于 2018-8-29 15:16
怎么用直接弄个成品出来吧,小白表示看不懂
 楼主| fengrui99 发表于 2018-8-30 08:41
听雨与风 发表于 2018-8-29 15:16
怎么用直接弄个成品出来吧,小白表示看不懂

成品的话这里有      https://frbkw.com/uiali/appui/
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 20:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表