vue打包app做文件下载功能
// 全局封装的下载方法
Vue.prototype.downLoad = function (data) {
const u = navigator.userAgent
//android终端或者uc浏览器
const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1
if (isAndroid) {
var dtask = plus.downloader.createDownload(data.url, {})
dtask.addEventListener('statechanged', (d, status) => {
switch (d.state) {
case 1: // 开始
Toast('加载中...');
break;
case 2: // 已连接到服务器
Toast('链接到服务器...');
break;
case 3: // 已接收到数据
var a = Math.floor(d.downloadedSize / d.totalSize * 100) + '%'
Toast(a);
break;
case 4: // 下载完成
// 下载保存路径到图库
plus.gallery.save(
d.filename,
() => {
Toast.success('下载完成!');
plus.nativeUI.closeWaiting()
plus.runtime.openFile(d.filename);
})
break;
}
})
dtask.start();
} else {
var dtaskIos = plus.downloader.createDownload(data.url, {});
dtaskIos.addEventListener('statechanged', (d, status) => {
switch (d.state) {
case 1: // 开始
Toast('加载中...');
break;
case 2: // 已连接到服务器
Toast('链接到服务器...');
break;
case 3: // 已接收到数据
var aIos = Math.floor(d.downloadedSize / d.totalSize * 100) + '%'
Toast(aIos);
break;
case 4: // 下载完成
Toast.success('下载完成!')
plus.nativeUI.closeWaiting()
plus.runtime.openFile(d.filename)
break
}
})
dtaskIos.start();
}
}
ios需要配置
提交苹果App store审核强制要求ATS,及访问非HTTPS服务器地址导致文件下载、上传、ajax无法正常工作 的问题 - DCloud问答
需要做配置处理