今天接到个需求,实现安卓热更新,先用uni.downloadFile下载再用install安装
问题:下载返回的statusCode为400,看log文件夹里为空没有文件
解决办法:在路径后面拼上?mtmz.apk 也就是把文件名拼到后面,在看code返回200,文件夹里也有文件了 ,解决问题,代码如下:
uni.downloadFile({
url: 'http://xxxx/apk/mtmz.apk?mtmz.apk',
success: (res) => {
if (res.statusCode === 200) {
plus.runtime.install(res.tempFilePath, {
force: true
}, function() {
console.log("加载完成!");
}, function(e) {
console.log(JSON.stringify(e));
}); //下载成功安装apk
}
},
fail: (err) => {
console.log(err);
uni.showToast({
icon: 'none',
mask: true,
title: '安装失败,请重新下载',
});
}
})
3 个回复
[已删除]
那要是我每次下载的文件包名都不一样呢?
码上啥都有 - 自由职业开发者,安卓开发,可定制各种插件,免费咨询,欢迎骚扰[wx:zhugefubin | QQ:553629767]
这是什么原理
码上啥都有 - 自由职业开发者,安卓开发,可定制各种插件,免费咨询,欢迎骚扰[wx:zhugefubin | QQ:553629767]
我遇到华为电视无法下载文件的情况,最后排查发现跟权限有关系,外置存储私有目录也得申请权限,还能说什么
具体表现为文件夹路径Android/data/xxx(本来是不需要申请权限的)被替换为了Harmony/data/xxx,而且可能替换得不彻底,导致原本不需要申请权限的自己的目录还得申请权限才能读写,真是太鸿蒙了