调试成功的下载apk的方法
// 文件下载 '_downloads/'
const fDownloadHandler = (id, xlsName) => {
//注意:url是你要下载的文件路径, xlsName(变量,随便命名) 是文件的后缀名,用于文件命名和格式修改
var options = {
//自定义下载文件路径,保存文件路径仅支持以"_downloads/"、"_doc/"、"_documents/"开头的字符串
filename: '_downloads/' + xlsName,
//默认为GET请求。注意这里需大写“GET”、“POST”
// method: "GET" ,
};
let url = config.url + `xxx/app`;
let dtask = plus.downloader.createDownload(
url,
options,
function (d, status) {
//d为下载的文件对象;status下载状态
if (status == 200) {
//下载成功
uni.showToast({
icon: "none",
mask: true,
title:'我的手机/Android/data/io.dcloud.HBuilder/downLoads', //保存路径
duration: 3000,
});
//d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
// plus.runtime.openFile(d.filename); //选择软件打开文件
plus.runtime.install(d.filename) //安装apk
} else {
//下载失败
uni.showToast({
icon: "none",
mask: true,
title: "下载失败,请稍后重试!", //保存路径
});
plus.downloader.clear(); //清除下载任务
}
}
);
// dtask.setRequestHeader(
// "Authorization",
// "Bearer " + useUser?.userinfo?.authorization
// );
dtask.start(); //启用
};
踩的坑
1.let url = config.url + xxx/app
中,config.url和 `xxx/app有没有多一条“/”;
2.下载文件的保存的路径是:“我的手机/Android/data/io.dcloud.HBuilder/downLoads”
不成功的方法,以备不时之需
// 下载文件接口
const fDownloadHandler111 = (id, xlsName) => {
//注意:url是你要下载的文件路径, xlsName(变量,随便命名) 是文件的后缀名,用于文件命名和格式修改
var options = {
filename: "file://storage/emulated/0/中考中招/" + xlsName,
// 指定下载保存路径
// savePath: "file://storage/emulated/0/中考中招/" + xlsName,
// 设置响应类型为Blob,以便后续操作
responseType: 'blob'
};
// let url = config.url + `/sys/file/info/download?id=${id}`;
let url = config.url + `/bs/student/info/import/template`;
let dtask = plus.downloader.createDownload(
url,
options,
function (d, status) {
//d为下载的文件对象;status下载状态
if (status == 200) {
//下载成功
uni.showToast({
icon: "none",
mask: true,
// title: "已保存到文件夹:/中考中招/" + xlsName+d.filename, //保存路径
title: d.filename, //保存路径
duration: 3000,
});
//d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
plus.runtime.openFile(d.filename); //选择软件打开文件
// plus.runtime.install(d.filename)
} else {
//下载失败
uni.showToast({
icon: "none",
mask: true,
title: "下载失败,请稍后重试!", //保存路径
});
plus.downloader.clear(); //清除下载任务
}
}
);
dtask.setRequestHeader(
"Authorization",
"Bearer " + useUser?.userinfo?.authorization
);
dtask.setRequestHeader(
"Content-Type",
'application/octet-stream'
);
dtask.start(); //启用
};