前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于mui开发的APP自动更新的问题

关于mui开发的APP自动更新的问题

作者头像
我乃小神神
发布2019-03-20 15:07:18
1.1K0
发布2019-03-20 15:07:18
举报
文章被收录于专栏:前端基础前端基础

关于APP自动更新的问题,可是有点坑啊,以下就是我遇到的问题,这是安卓版本的,ios的没有写,因为ios必须去应用商店下

话不多说,直接上代码

  • 先进行获取手机APP当前的信息

const wgtVer = null;

代码语言:javascript
复制
//获取当前版本号
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
     wgtVer = inf.version;
     这里这个wgtVer 就是代表当前的版本号,下面会用到
});
  • 这里就是进行获取你们服务器的数据的数据,为了容易看懂,也没有封装,就为了简单明了
代码语言:javascript
复制
function getversion1() {
		let svno = "";
		let svurl = "";
		let svcontent = "";
		let svsize = "";
		$.ajax({
		type: "get",
		url: "你的后台服务器地址",
		async: true,
		dataType: 'json',
		data: {},
		success: function(res) {
		if(res.status == 1) {
		这里的这些逻辑,写的很基础,应该看的懂吧
		    }
	    else {
		   mui.toast(res.msg)     
		   }
		},
		error: function(r) {
		console.log(r)
		}
		});
		}
  • 上面的就是你们后台配置的地址,然后返回一下参数,其中就有一些是你们所需要的
代码语言:javascript
复制
function getversion1() {
		let svno = "";
		let svurl = "";
		let svcontent = "";
		let svsize = "";
		$.ajax({
		type: "get",
		url: "你的后台服务器地址",
		async: true,
		dataType: 'json',
		data: {},
		success: function(res) {
		if(res.status == 1) {
		然后在这里获取到当前你所需要的信息,比如当前的版本号,
		后台已经上传的版本号,每个后台返回格式不一样,
		请按照你的后台返回格式来哦
		console.log("当前版本号:" + wgtVer)
		console.log("当前服务器号:" + res.result.data.no)

**获取到你所想要的数据之后**
   
       

 1. 进行当前版本号与服务器版本号进行对比,然后在执行下载的方法
   
   if(wgtVer < res.result.data.no) {
      var dtask =plus.downloader.createDownload(
      res.result.data.url,res.result.data.pakagesize,{}, 
      function(d, status) {
	  if(status == 200) {
	  clearInterval(i);
      plus.nativeUI.toast("正在准备环境,请稍后!");
	  var path = d.filename; //_downloads yijietong.apk
      plus.runtime.install(path); // 安装下载的apk文件
	  } else {
	  mui.alert('Download failed:' + status);
	  }
     });
   
    dtask.start();
    var i = setInterval(function() {
    计算当前的下载进度
	var totalSize = dtask.totalSize;
	var downloadedSize = dtask.downloadedSize;
	$("#jindutiao").css("display", "block")
	var daxiaoa = downloadedSize / totalSize
	var baifenbiw = (Math.round(daxiaoa * 100) / 100) * 100
	var baifenbi = (Math.round(daxiaoa * 100) / 100) * 100 + "%"
	console.log(baifenbi);
	mui("#demo1").progressbar({
	progress: baifenbiw
	}).show();
	$("#jindutiaow").css("width", baifenbiw)
	("#jindutiaoneirong").text(baifenbi)
	}, 100); //1000为1秒钟
    }
	}
    else {
		 mui.toast(res.msg)     
		 }
	},
    error: function(r) {
	console.log(r)
	}
	});
}
  • 好了。也许你看的有点懵逼,那我就上传一份我当时的完整的代码,你中间自己修改成你需要的东西
代码语言:javascript
复制
function getversion1() {
				var svno = "";
				var svurl = "";
				var svcontent = "";
				var svsize = "";
				$.ajax({
					type: "get",
					url: "你的请求地址",
					async: true,
					dataType: 'json',
					data: {},
					success: function(res) {
					if(res.status == 1) {
					console.log("当前版本号:" + wgtVer)
					console.log("当前服务	器号:" + res.result.data.no)
					console.log(JSON.stringify(res))
					if(wgtVer < res.result.data.no) {
					$("#vscontent").text(res.result.data.content)
					$(".myversion").text(res.result.data.no);
					$(".mysize").text(res.result.data.pakagesize);
					$("#gengxinle").css("display", "block");
					$("#myfullblack").css("display", "block");
					$('.cent').css("display", "block");
					mui('body').on('tap', '#shegnji', function() {
					$("#shegnji").prop("disabled", "disabled");
					$("#canren").text("点击进行后台下载")
			        var dtask = plus.downloader.createDownload(
			        res.result.data.url,res.result.data.pakagesize,
					{}, function(d, status) {
					if(status == 200) {
					clearInterval(i);
					$('#jindutiao').css("display", "block");
					plus.nativeUI.toast("正在准备环境,请稍后!");
					var path = d.filename; //_downloads yijietong.apk
					console.log(d.filename);
					plus.runtime.install(path); // 安装下载的apk文件
					} else {
					mui.alert('Download failed:' + status);
					}
					});
					dtask.start();
					var i = setInterval(function() {
					var totalSize = dtask.totalSize;
					var downloadedSize = dtask.downloadedSize;
					$("#jindutiao").css("display", "block")
					var daxiaoa = downloadedSize / totalSize
					var baifenbiw = (Math.round(daxiaoa * 100) / 100) * 100
					var baifenbi = (Math.round(daxiaoa * 100) / 100) * 100 + "%"
					console.log(baifenbi);
					mui("#demo1").progressbar({
					progress: baifenbiw
					}).show();
					$("#jindutiaow").css("width", baifenbiw)
					$("#jindutiaoneirong").text(baifenbi)
					}, 100); //1000为1秒钟
					})
					} else {
					mui.toast('已是最新版本')
					}
					} 
					else {
					mui.toast(res.msg)
					}
					},
					error: function(r) {
					console.log(r)
					}
				});

			}

好了这以上就是我分享的mui开发的app 的更新问题,有问题请留言,谢谢,一起努力一起进步

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年09月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档