mui app在线更新
一、参考资料
二、代码
1. HTML代码
<div class="mui-content">
<div class="mui-scroll">
<div class="login-img">
<img src="data:images/icon.png" width="20%" />
<p id="version">当前应用版本:</p>
</div>
</div>
<ul class="mui-table-view check" id="check">
<li class="mui-table-view-cell">
<div class="updateProDiv">更新进度:
<progress value="" max="" id="proDownFile"></progress>
<span class="persent"></span>
</div>
<a href="#" id="update" class="mui-navigate-right">检查更新</a>
</li>
</ul>
</div>
2. CSS代码
#version{margin-top:20px;font-size: 18px;}
.check{margin-top: 58%;}
.check li{padding: 16px 11px;}
.check a{font-size: 20px;}
.check p{font-size: 18px;margin-top: 5px;}
progress {border-radius: 2px;border-left: 1px #ccc solid;border-right: 1px #ccc solid;border-top: 1px #aaa solid;background-color: #eee;}
progress::-webkit-progress-bar {background-color: #d7d7d7;}
progress::-webkit-progress-value {background-color: #aadd6a;}
.updateProDiv {display: none;}
3. JS代码
<script src="js/jquery-1.8.3.min.js"></script>
<script>
var wgtVer=null;
function plusReady(){ // 获取本地应用资源版本号
plus.runtime.getProperty(plus.runtime.appid,function(inf){
wgtVer=inf.version;
version.innerHTML = '当前应用版本:'+wgtVer;
});
}
if(window.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
var ver;
//休眠方法
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
mui('.mui-table-view-cell').on('click', '#update', function() {
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
ver = inf.version;
console.log("当前应用版本:" + ver);
var url= app.baseurl+'index.php/api/other/version';
var client;
if(mui.os.ios) {client='ios';}
else{client='android';}
mui.ajax(url,{
data:{
version: ver,
client:client
},
dataType:'json',
type:'POST',
timeout:10000,
success:function(data){
if(data.status==1){
var btnArray = ['是', '否'];
mui.confirm('最新version是:' + data.version+',是否更新', '发现最新版本', btnArray, function(z) {
if (z.index == 0) {
console.log('确定');
$('.updateProDiv').css('display', 'block');
$('#update').css('display', 'none');
var dtask = plus.downloader.createDownload(data.url, {}, function(d, status) {
if (status == 200) {
clearInterval(i);
$('.persent').html("100%");
plus.nativeUI.toast("正在准备环境,请稍后!");
sleep(1000);
var path = d.filename;//_downloads yijietong.apk
console.log(d.filename);
$('#update').css('display', 'block');
$('.updateProDiv').css('display', 'none');
plus.runtime.install(path); // 安装下载的apk文件
} else {
alert('Download failed:' + status);
}
});
dtask.start();
var i = setInterval(function() {
var totalSize = dtask.totalSize;
var downloadedSize = dtask.downloadedSize;
$('#proDownFile').attr('value', downloadedSize);
$('#proDownFile').attr('max', totalSize);
console.log(dtask.downloadedSize);
console.log(dtask.totalSize);
}, 100); //1000为1秒钟
} else {
console.log('不确定');
return;
}
});
}
else{
alert(data.message);
}
},
error: function(xhr, type, errerThrown) {
mui.toast('网络异常,请稍候再试');
}
});
});
});
</script>
3. 接口代码
public function version(){
$data = $_POST;
$m_version=M('versions');
$ret=$m_version->find();
if($ret['version']==$data['version']){
$this->ajaxReturn(array('status'=>0,'message'=>'当前版本已经是最新版!'));
}
else
{
$ret_data['status']=1;
$ret_data['version']=$ret['version'];
if($data['client']=='android'){
$ret_data['url']=sp_get_asset_upload_path('apk/yijietong.apk',true);
}
else{ $ret_data['url']=sp_get_asset_upload_path('apk/yijietong.apk',true);}
$this->ajaxReturn($ret_data);
}
}
mui app在线更新的更多相关文章
- Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)
一.前言 app在线更新是一个比较常见需求,新版本发布时,用户进入我们的app,就会弹出更新提示框,第一时间更新新版本app.在线更新分为以下几个步骤: 1, 通过接口获取线上版本号,versionC ...
- MUI APP关于页面之间的传值,plusready和自定义事件
最近在用MUI开发这个APP,发现有时候这个plusready不起作用,表现在,这个页面如果重复打开,这个plusready就进不去,然后上一个页面传过来的值,就没法接收了.这个经过MUI官方确认,是 ...
- MUI APP防止登陆页面出现白屏
最近在用MUI开发APP,总体效果,在IOS上,是完美的,但是在低端的Android手机上,就会出现性能问题,我个人觉得最严重的是,就是首页,就是APP打开的第一个页面,在iOS上,由于性能高,所以, ...
- Mui --- app与服务器之间的交互原理、mui ajax使用
1.APP与服务器之间的交互原理 app端(客户端)与服务端的交互其实理解起来和容易,客户端想服务器端发送请求,服务器端进行数据运算后返回最终结果.结果可以是多种格式: 1.text 文本格式 2.x ...
- mui APP 微信登录授权
一.在微信平台上申请appid.appsecret. 二.app --> manifest.json-->SDK配置(填写申请好的appid和appsecret) 三.在登录页,点击微信登 ...
- mui APP与服务器之间的交互原理
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- mui app页面刷新问题 plus.webview.getWebviewById("").reload()
/** * 放回指定页面,并且刷新指定页面 * @param {Object} pageId 指定页面ID */ mui.app_refresh=function(pageId){ if(!mui.i ...
- Layman H5+Webapp+MUI App 页面滑至到底部自动加载新的内容
要点:使用jquery的scroll()方法实现,当用户滚动指定的元素时,会发生 scroll 事件 scroll 事件适用于所有可滚动的元素和 window 对象(浏览器窗口) scroll() 方 ...
- mui开发app之js将base64转图片文件
之前我已经做过一个利用cropper裁剪并且制作头像的功能.如何在mui app中实现相册或相机获取图片后裁剪做头像请看另一篇博客:mui开发app之cropper裁剪后上传头像的实现 但是当时裁剪后 ...
随机推荐
- ssm之mapper异常 Result Maps collection already contains value for com.ssj.mapper.UserMapper 和 Type interface com.ssj.mapper.UserMapper is already known to the MapperRegistry.
异常一:Result Maps collection already contains value for com.ssj.mapper.XXXMapper 原因分析:XXXmapper.xml文件中 ...
- Angular 回到顶部 滚动到特定的页面位置
$timeout(function() { // $location.hash('bottom'); // $anchorScroll(); // var a=angular.element(&quo ...
- Spark2.0机器学习系列之5:随机森林
概述 随机森林是决策树的组合算法,基础是决策树,关于决策树和Spark2.0中的代码设计可以参考本人另外一篇博客: http://www.cnblogs.com/itboys/p/8312894.ht ...
- 模块讲解----json模块(跨平台的序列化与反序列化)
一.json的特点 1.只能处理简单的可序列化的对象:(字典,列表,元祖) 2.json支持不同语言之间的数据交互:(python - go,python - java) 二.使用场景 1.玩 ...
- keeplived + mysql双主复制部署 --原创
环境: master 1: 192.168.100.10 oracle linux 7.4 mysql 5.7.1 master 2: 192.168.100.11 oracle linux ...
- 支持向量机SVM、优化问题、核函数
1.介绍 它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解. 2.求解过程 1.数据分类—SVM引入 ...
- ResultMap和ResultType在使用中的区别
在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...
- C++命名规则(转)
如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一.带层次结构.清晰明了的命名准则就是必不可少而且非常好用的工具. 活跃在生物学.化学.军队.监狱.黑社会.恐怖组织等各个领域内的大量有识 ...
- java中的重量级与轻量级概念
首先轻量级与重量级是一个相对的概念,主要是对应用框架使用方便性和所提供服务特性等方面做比较的. 比方说EJB就是一个重量级的框架,因为它对所编写的代码有限制,同时它也提供分布式等复杂的功能. 相比之下 ...
- Phoenix编译支持CDH
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6898227.html 转载请注明出处 最近由于想调研下低延迟的数据查询框架,那么基于SQL on Hba ...