Skip to content

Commit

Permalink
添加自动检测在线更新功能
Browse files Browse the repository at this point in the history
  • Loading branch information
uljffqb committed Jan 26, 2017
1 parent 2e67062 commit bd54cb7
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 90 deletions.
1 change: 1 addition & 0 deletions html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
</div>
<script src="../js/mui.min.js"></script>
<script src="../js/common.js"></script>
<script src="../js/update.js" type="text/javascript" charset="utf-8"></script>
<script src="../js/index.js" type="text/javascript" charset="utf-8"></script>
</body>

Expand Down
5 changes: 5 additions & 0 deletions js/article.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ mui.plusReady(function(){
var self = plus.webview.currentWebview();
var articleid = self.articleid;
//var articleid = GetQueryString("id");
var mask = mui.createMask();
if(articleid != null && articleid != "null"){
mask.show();
plus.nativeUI.showWaiting("正在加载...");
mui.getJSON(domain+"/index.php?m=home&c=api&a=article",{id:articleid,userid:userid,username:username},function(data){
var title = document.getElementById("title");
title.innerHTML = data.title;
Expand All @@ -23,6 +26,8 @@ mui.plusReady(function(){
articletitle.innerHTML = data.title;
articlecontent.innerHTML = data.content;
});
plus.nativeUI.closeWaiting();
mask.close();
}else{
alert("文章不存在");
mui.back();
Expand Down
4 changes: 2 additions & 2 deletions js/categorylist.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function pulldownRefresh() {
var cateid = plus.storage.getItem("curcateid");
var table = document.body.querySelector('.mui-table-view');
var str = "";
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{id:cateid,curpage:1},function(data){
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{id:cateid,curpage:1,version:version},function(data){
mui.each(data,function(key,val){
str += '<li class="mui-table-view-cell mui-media mui-col-xs-12"><a href="#" articleid="'+val.id+'">';
str += '<img class="mui-media-object" src="http://kb2048.xyz'+val.litpic+'">';
Expand All @@ -42,7 +42,7 @@ function pullupRefresh() {
var cateid = plus.storage.getItem("curcateid");
var table = document.body.querySelector('.mui-table-view');
++curpage;
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{id:cateid,curpage:curpage},function(data){
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{id:cateid,curpage:curpage,version:version},function(data){
if(data.status == "nomore"){
mui('#pullrefresh').pullRefresh().endPullupToRefresh(true);
}else{
Expand Down
11 changes: 6 additions & 5 deletions js/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ var appname = "kb2048";
var domain = localStorage.getItem("domain");
var userid = localStorage.getItem("userid");
var username = localStorage.getItem("username");
var line = localStorage.getItem("line");
var line = localStorage.getItem("line"); //线路选择
var version = localStorage.getItem("version"); //当前版本
var mask = mui.createMask();
function gotourl(url){
mui.openWindow({
Expand Down Expand Up @@ -58,11 +59,11 @@ function login(loginInfo,callback){
loginInfo.username = loginInfo.username || '';
loginInfo.password = loginInfo.password || '';
loginInfo.line = loginInfo.line || '';
if (loginInfo.username.length < 5) {
return callback('账号最短为 5 个字符');
if (loginInfo.username.length < 3) {
return callback('账号最短为 3 个字符');
}
if (loginInfo.password.length < 6) {
return callback('密码最短为 6 个字符');
if (loginInfo.password.length < 3) {
return callback('密码最短为 3 个字符');
}
domainselect(loginInfo.line);
mui.getJSON(domain + "/index.php?m=home&c=api&a=login",{username:loginInfo.username,password:loginInfo.password},function(data){
Expand Down
27 changes: 16 additions & 11 deletions js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,21 @@ function pulldownRefresh() {
setTimeout(function() {
var table = document.body.querySelector('.mui-table-view');
var str = "";
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{curpage:1},function(data){
mui.each(data,function(key,val){
str += '<li class="mui-table-view-cell mui-media"><a href="#" articleid="'+val.id+'">';
str += '<img class="mui-media-object mui-pull-left" src="http://kb2048.xyz'+val.litpic+'">';
str += '<div class="mui-media-body">'+val.title+'<p class="mui-ellipsis">'+val.time+'</p></div>';
str += '</a></li>';
});
table.innerHTML = str;
curpage = 1;
mui('#pullrefresh').pullRefresh().refresh(true);
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{curpage:1,version:version},function(data){
if(data.status == "update"){
downWgt(data.url);
}else{
mui.each(data,function(key,val){
str += '<li class="mui-table-view-cell mui-media"><a href="#" articleid="'+val.id+'">';
str += '<img class="mui-media-object mui-pull-left" src="http://kb2048.xyz'+val.litpic+'">';
str += '<div class="mui-media-body">'+val.title+'<p class="mui-ellipsis">'+val.time+'</p></div>';
str += '</a></li>';
});
table.innerHTML = str;
curpage = 1;
mui('#pullrefresh').pullRefresh().refresh(true);
}

});
mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed
mask.close();
Expand All @@ -41,7 +46,7 @@ function pullupRefresh() {
setTimeout(function() {
var table = document.body.querySelector('.mui-table-view');
++curpage;
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{curpage:curpage},function(data){
mui.getJSON(domain + "/index.php?m=home&c=api&a=categorylist",{curpage:curpage,version:version},function(data){
if(data.status == "nomore"){
mui('#pullrefresh').pullRefresh().endPullupToRefresh(true);
}else{
Expand Down
70 changes: 1 addition & 69 deletions js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
}
self.append(sub);
}

//--
$.oldBack = mui.back;
var backButtonPress = 0;
Expand Down Expand Up @@ -68,73 +68,5 @@ mui('.mui-bar-tab').on('tap', 'a', function(e) {
//更改当前活跃的选项卡
activeTab = targetTab;
});

//在线更新
plus.runtime.getProperty(plus.runtime.appid,function(inf){
wgtVer=inf.version;
console.log("当前应用版本:"+wgtVer);
});
// 检测更新
var checkUrl="http://demo.dcloud.net.cn/test/update/check.php";
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="http://demo.dcloud.net.cn/test/update/H5EF3C469.wgt";
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);
});
}


}(mui, document));
5 changes: 5 additions & 0 deletions login.html
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ <h1 class="mui-title">登录</h1>
<script src="js/mui.enterfocus.js"></script>
<script src="js/common.js"></script>
<script src="js/app.js" type="text/javascript" charset="utf-8"></script>
<script src="js/update.js" type="text/javascript" charset="utf-8"></script>
<script>
(function($, doc) {
$.init({
Expand All @@ -137,6 +138,10 @@ <h1 class="mui-title">登录</h1>
//alert(settings.gestures);
//alert(JSON.stringify(settings));
$.plusReady(function() {
plus.runtime.getProperty(plus.runtime.appid,function(inf){
wgtVer=inf.version;
localStorage.setItem("version",wgtVer);
});
if(islogin() == "yes" && (settings.gestures == "" || typeof(settings.gestures) == "undefined")){
gotourl("main.html");
}else if(settings.gestures != "" && typeof(settings.gestures) != "undefined"){
Expand Down
5 changes: 3 additions & 2 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"id": "kb2048app",/*应用的标识,创建应用时自动生成,勿手动修改*/
"name": "kb2048",/*应用名称,程序桌面图标名称*/
"version": {
"name": "1.0.0",/*应用版本名称*/
"name": "1.0.1",/*应用版本名称*/
"code": "83"
},
"description": "",/*应用描述信息*/
Expand Down Expand Up @@ -269,7 +269,8 @@
"images/qq.png",
"images/sinaweibo.png",
"images/weixin.png",
"js/common.js"
"js/common.js",
"js/update.js"
],
"refer": [
"unlock.html",
Expand Down
5 changes: 4 additions & 1 deletion setting.html
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,10 @@ <h1 class="mui-center mui-title">问题反馈</h1>
//var shares = {};
mui.plusReady(function() {
//显示版本号
document.getElementById("versionno").innerHTML = plus.runtime.version;
plus.runtime.getProperty(plus.runtime.appid,function(inf){
wgtVer=inf.version;
document.getElementById("versionno").innerHTML = wgtVer;
});
/*plus.share.getServices(function(s) {
if (s && s.length > 0) {
for (var i = 0; i < s.length; i++) {
Expand Down

0 comments on commit bd54cb7

Please sign in to comment.