return await axios
.get('此处放下载apk文件后端接口url', {
headers: { "Content-type": "charset=UTF-8" },
responseType: "blob"
})
.then((res: any) => {
this.fileHref = "cdvfile://localhost/persistent/app.apk";
let uri = encodeURI(
"上传apk文件接口地址"
);
const fileTransfer: FileTransferObject = FileTransfer.create();
let options = {
fileKey: "file",
fileName: "app.apk"
};
fileTransfer
.download(uri, this.fileHref, true, options)
.then(data => {
console.log(data, data.toInternalURL(), data.nativeURL);
Toast.clear();
Toast.success("文件下载成功!");
try {
cordova.plugins.fileOpener2.open(
"cdvfile://localhost/persistent/app.apk",
// data.toInternalURL(),
// data.nativeURL,
"application/vnd.android.package-archive",
{
error: function(e) {
console.log(e,JSON.stringify(e), "安装文件打开失败!");
},
success: function(data) {
console.log(data, "安装文件打开成功!");
}
}
);
} catch (error) {
console.log(error);
}
})
.catch(err => {
Toast.clear();
console.log(err);
Toast.fail("文件下载失败!");
});
});
引入
import { FilePath } from "@ionic-native/file-path";
import {
FileTransfer,
FileUploadOptions,
FileTransferObject
} from "@ionic-native/file-transfer";
import { File } from "@ionic-native/file";
踩坑
cordova-plugin-file-opener2的2.2.1有问题,我删除了2.2.1,添加2.2.0就可以了。cordova plugin rm cordova-plugin-file-opener2,cordova plugin add cordova-plugin-file-opener2@2.2.0。