uniapp结合H5+下载apk并安装打开
2020-07-20 本文已影响0人
子夜照弦歌
// fingerPkg这里是包名
let _this = this;
// 判断平台
if (plus.os.name == "Android") {
// 判断有没有安装应用
if (
plus.runtime.isApplicationExist({
pname: _this.fingerPkg
// action: "weixin://" //这里是ios,需要配置,这里不做说明,可去官网查看
})
) {
console.log("微信应用已安装");
// 打开应用
plus.runtime.launchApplication(
{
pname: _this.fingerPkg,
extra: {
// 这里写额外参数
}
},
function(e) {
// 打开失败回调
console.log(JSON.stringify(e));
console.log("Open system default browser failed: " + e.message);
}
);
} else {
_this.$Common.user.showToast("检测到未下载应用,正在下载,请勿离开");
// 未下载应用,去下载, pkgUrl为下载地址
var dtask = plus.downloader.createDownload(_this.pkgUrl, {}, function(
d,
status
) {
// 下载完成,打开文件
if (status == 200) {
plus.runtime.openFile(d.filename);
} else {
_this.$Common.user.showToast("下载失败,请手动下载");
}
});
// 这里是监听下载进度,可以自己生成进度条
dtask.addEventListener("statechanged", function(task, status) {
if (!dtask) {
return;
}
switch (task.state) {
case 1:
_this.$Common.user.showToast("开始下载...");
break;
case 2:
_this.$Common.user.showToast("正在下载...");
break;
case 3: // 已接收到数据
var progressVal = (task.downloadedSize / task.totalSize) * 100;
_this.$Common.user.showToast(Number(progressVal) + "%");
break;
case 4:
dtask = null;
_this.$Common.user.showToast("正在打开文件...");
break;
}
});
// 开始下载
dtask.start();
}
} else if (plus.os.name == "iOS") {
// ios 暂未做,以后有机会补上
// plus.runtime.launchApplication({ action: "taobao://" }, function(e) {
// console.log("Open system default browser failed: " + e.message);
// });
}