uniapp 无法热更新问题
**不知道为什么在模拟器里面调试就是热更新就是不生效
麻烦大神帮忙看看 就是出不来热更新,无法实现更新wgt包**
onLaunch: function() {
var server = "http://192.168.3.11:801/updata.php"; //检查更新地址
var req = { //升级检测数据
"appid": plus.runtime.appid,
"version": plus.runtime.version,
"name": plus.os.name
};
uni.request({
url: server,
data: req,
success: (res) => {
// 整包更新
if (res.statusCode == 200 && res.data.status === 1) {
url: res.data.url,
uni.showModal({ //提醒用户更新
title: "更新提示",
content: res.data.note,
success: (res1) => {
//console.log(res1)
if (res1.confirm) {
plus.runtime.openURL(res.data.url);
}
}
})
}
// 热更新
if (res.statusCode == 200 && res.data.status === 2) {
uni.downloadFile({
// url: res.data.url;
console.log(res.data.url)
success: (downloadResult) => {
console.log(downloadResult);
if (downloadResult.statusCode === 200) {
plus.runtime.install(downloadResult.tempFilePath, {
force: true
}, function() {
console.log('install success...');
plus.runtime.restart();
}, function(e) {
console.error('install fail...');
});
}
}
});
}
}
})
后端PHP的
header("Content-type:text/json");
$appid = $_GET["appid"];
$version = $_GET["version"]; //客户端版本号
$name = $_GET['name'];
$rsp = array("status" => 2); //默认返回值,不需要升级
if (isset($appid) && isset($version)) {
if ($appid === "HBuilder") { //校验appid
if ($version !== "1.0.1") { //这里是示例代码,真实业务上,最新版本号及relase notes可以存储在数据库或文件中
// 1为整包更新,2为热更新
$rsp["status"] = 2;
if( $rsp["status"]==1){
$rsp["note"] = "修复bug1;\n修复bug2;"; //release notes
if ($name=="Android") {
$rsp["url"] = "http://192.168.3.11:801/__UNI__41811EC_0824161936.apk"; // Android下载地址
}else{
$rsp["url"] = "itms-apps://itunes.apple.com/cn/app/******"; // IOS下载地址
}
}else{
$rsp["url"]="http://192.168.3.11:801/2109C97.wgt"; // 热更新包
}
}
}
}
echo json_encode($rsp);
exit;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论