uni-app的整包升级与热更新
3 票
前端代码段(包含了整包升级与热更新的代码)
// #ifdef APP-PLUS
// 版本更新
plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
var server = "后端接口";
uni.request({
url: server,
data: {
appid: widgetInfo.appid,
version: widgetInfo.version,
name: widgetInfo.name
},
success: (result) => {
if (result.statusCode == 200 && result.data.status === 1) {
//整包升级
uni.showModal({ //提醒用户更新
title: "更新提示",
content: "发现新版本",
success: (res) => {
if (res.confirm) {
uni.showToast({
title: 'App开始进行版本更新...',
duration: 1500,
icon: 'none'
});
uni.downloadFile({
url: result.data.url,
success: (downloadResult) => {
if (downloadResult.statusCode === 200) {
plus.runtime.install(downloadResult.tempFilePath, {
force: false
}, function() {
console.log('App安装成功!');
plus.runtime.restart();
}, function(e) {
console.error('App安装失败!');
});
}
}
});
}
}
})
}
// 升级包更新,下载wgt文件
var wgtUrl = result.data.m_url;
if (result.data.m_url != "文件服务器域名") {
plus.downloader.createDownload(wgtUrl, { filename: '_doc/update/' }, function(d, status) {
if (status == 200) {
console.log('下载wgt成功:' + d.filename);
// 安装wgt包
var path = d.filename;
// plus.nativeUI.showWaiting('安装wgt文件...');
plus.runtime.install(
path,
{
force: true
},
{},
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);
}
);
} else {
console.log('下载wgt失败!');
// plus.nativeUI.alert('下载wgt失败!');
}
plus.nativeUI.closeWaiting();
}).start();
}
}
});
});
// #endif
后端代码段:
public function index(){
$appid = $_GET["appid"];
$version = $_GET["version"]; //客户端版本号
$rsp = array("status" => 0); //默认返回值,不需要升级
$appdata = AppsUpdate::order('created_at desc')->find();
$arr = [
['version', '=', $version],
];
$appmdata = AppsMupdate::where([$arr])->order('created_at desc')->find();
if (isset($appid) && isset($version)) {
if ($appid === "应用的appid") { //校验appid
$rsp["status"] = 0;
$rsp["m_url"] = "文件服务器域名".$appmdata['apk_file_url']; //升级包下载地址
if ($version != $appdata['version']) {
$rsp["status"] = 1;
$rsp["url"] = "文件服务器域名".$appdata['apk_file_url']; //应用包下载地址
}else{
$rsp["status"] = 0;
}
}
}else{
$rsp["status"] = 0;
$rsp["mes"] = 'appid不一致';
}
echo json_encode($rsp);
}
共有 0 条评论