const createDownload = (options) => {
var dtask = plus.downloader.createDownload(
"https://lmg.jj20.com/up/allimg/1112/112GPR626/1Q12FR626-9-1200.jpg", options,
function(d, status) {
if (status == 200) {
let file = new Object();
file = {
...{
url: d.url,
filename: d.filename,
timeout: d.timeout,
}
};
Filestart(file);
} else {
plus.nativeUI.confirm(`文件下载失败喔!${status}`, function(e) {
console.log(e);
});
}
});
dtask.start();
}
const Filestart = (params) => {
plus.io.resolveLocalFileSystemURL(params.filename, function(entry) {
entry.file(function(file) {
var fileReader = new plus.io.FileReader();
fileReader.readAsText(file, 'utf-8');
fileReader.onloadend = function(evt) {
console.log(evt.target.fileName);
creatDirectory("_doc/这是保存的目录/", evt.target.fileName);
}
});
}, function(e) {
plus.nativeUI.confirm(`文件创建写入失败喔!${e.message}`, function(ev) {
console.log(ev);
});
});
}
const creatDirectory = (params, path) => {
plus.io.resolveLocalFileSystemURL("_doc/",
function(entry) {
entry.getDirectory(params, {
create: true,
exclusive: false
}, function(dir) {
FilesWriter(params, path);
plus.nativeUI.confirm(`目录创建成功!${JSON.stringify(params)}`, function(ev) {
console.log(ev);
});
}, function(e) {
console.log("创建失败:" + e.message);
});
},
function(e) {
console.log("Resolve file URL failed: " + e.message);
});
}
const FilesWriter = (params, path) => {
let newName = new Object();
plus.io.resolveLocalFileSystemURL(path, function(entry) {
plus.io.resolveLocalFileSystemURL("_doc/", function(fs) {
fs.getDirectory('这是保存的目录', {
create: true,
exclusive: false
}, function(fe) {
console.log(fe.fullPath);
entry.moveTo(fe, entry.name, function(res) {
plus.nativeUI.confirm(`转移成功!${res.fullPath}`, function(ev) {
console.log(ev);
});
}, function(e) {
console.log(e);
})
}, function(err) {
console.log(err)
})
})
})
}
export default {
createDownload,
Filestart,
creatDirectory,
FilesWriter
}
导入上面代码片段并新建为js文件
<template>
<view class="content">
<button @click="down">开始下载并写入</button>
</view>
</template>
<script>
import yx_plus from '../../yx_plus/yx_plus.js';
export default {
data() {
return {
options: {},
files: [],
}
},
methods: {
down() {
this.options = {
...{
method: 'GET',
priority: 1,
timeout: 500,
retry: 1,
retryInterval: 3000,
}
};
yx_plus.createDownload(this.options);
}
}
}
</script>
<style scoped lang="less">
.content {
width: 100%;
button {
width: 95%;
height: 90rpx;
background-color: #00aaff;
display: flex;
justify-content: center;
align-items: center;
letter-spacing: 1px;
font-size: 30rpx;
font-weight: 500;
color: #fff;
margin: 20px auto;
}
}
</style>