关于APP自动更新的问题,可是有点坑啊,以下就是我遇到的问题,这是安卓版本的,ios的没有写,因为ios必须去应用商店下
话不多说,直接上代码
1.先进行获取手机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 的更新问题,有问题请留言,谢谢,一起努力一起进步