专栏首页前端基础关于mui开发的APP自动更新的问题

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

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

话不多说,直接上代码

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

const wgtVer = null;

//获取当前版本号
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
     wgtVer = inf.version;
     这里这个wgtVer 就是代表当前的版本号,下面会用到
});
  • 这里就是进行获取你们服务器的数据的数据,为了容易看懂,也没有封装,就为了简单明了
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)
		}
		});
		}
  • 上面的就是你们后台配置的地址,然后返回一下参数,其中就有一些是你们所需要的
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)
	}
	});
}
  • 好了。也许你看的有点懵逼,那我就上传一份我当时的完整的代码,你中间自己修改成你需要的东西
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 的更新问题,有问题请留言,谢谢,一起努力一起进步

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3d 旋转(摘抄)

    我乃小神神
  • ES6的小总结

    es6是新一代的JavaScript 的标准,尤其你要学习React,那就必须要学es6啊,因为不然,你压根就是蒙的,我后续也会更新react 的博客,es6的...

    我乃小神神
  • 使用js替换数组中元素

    记得我最近刚刚做的一个项目,后端返回的一个数组对象,里面的图片的地址有问题,一个在这个ip上一个在另一个ip 上,我问他咋办,他说,你要自己把那个返回的数据重...

    我乃小神神
  • 通过手机浏览器调用客户端QQ

    CrazyCodes
  • JavaScript面试题补充(1---5)

    在IT界中,JavaScript开发人员的需求量一直居高不下。如果你的能力能够胜任这一角色,那么你有很多机会换一家公司,并提高薪水。但在你被一家公司聘用之前,你...

    用户1272076
  • 原生JS--Ajax

    Ajax基础: --ajax:无刷新数据读取,读取服务器上的信息 --HTTP请求方法:     --GET:用于获取数据,如浏览帖子     --POST:用...

    莫问今朝
  • jQuery第十一篇 $.trim(); $.isWindow(); $.isArray(); $.isFunction();静态方法

    用户7873631
  • 5个经典的JavaScript面试题

    在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开 发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司...

    wangxl
  • Javascript 笔记

    JavaScript表单验证电话号码,判断一个输入量是否为电话号码,通过正则表达式实现。 //检查电话号码 function isTel(str){      ...

    Hongten
  • javascript:算法笔记

    入门级算法-线性查找-时间复杂度O(n)--相当于算法界中的HelloWorld //线性搜索(入门HelloWorld) //A为数组,x为要...

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券