应项目需求第一次接触andriod开发,需要实现图片和视频等在andriod设备的本地离线缓存,使得在断网的情况下也能访问并且展示数据。该项目使用的uniapp来开发app,我在下面小小的记录一下使用的一些存储方法。
首先,下载文件到本地方法如下:
// 下载缓存文件到本地
downloadFile(url, filename, callback) {
var dtask = plus.downloader.createDownload(url, {
filename: filename
}, function(d, status) {
// 下载成功
if (status == 200) {
console.log('Download success: ' + d.filename);
} else {
// 下载失败
console.log('Download error: ' + status);
}
});
dtask.start();
},
以上的url可以是图片访问地址(例如,http://xxxxx.com/img/face_1707013827965.jpg)也可以是视频访问地址(例如,https://xxxxx.com/preview/video/00/00/16/55/V-165559-81A6EE1A.mp4),其都可以下载到本地。另外,删除本地缓存文件如下:
//删除缓存图片
deleteFileOfImage() {
// 假设已知图片的存储相对路径
var imagePath = "_downloads/image.jpg";
plus.io.resolveLocalFileSystemURL(imagePath, function(entry) {
entry.remove(function(entry) {
console.log("删除图片成功");
}, function(e) {
console.log("删除图片失败");
});
})
},
//删除缓存图片
deleteFileOfVideo() {
// 假设已知视频的存储相对路径
var imagePath = "_downloads/test.mp4";
plus.io.resolveLocalFileSystemURL(imagePath, function(entry) {
entry.remove(function(entry) {
console.log("删除视频成功");
}, function(e) {
console.log("删除视频失败");
});
})
},
获取并显示文件直接用image和video标签引用本地路径(_downloads/test.mp4和_downloads/image.jpg)就可以显示了。
我也是在慢慢学习中,有不足和有待改善的地方欢迎小伙伴们留言指出哦!大家一起进步!