uniapp 视频下载到本地
时间: 2025-01-05 17:21:09 浏览: 203
### 实现视频下载并保存到本地存储
在 UniApp 中实现视频下载至本地存储主要依赖于 `uni.downloadFile` API 来获取网络资源,并利用原生接口完成文件写入操作。对于 Android 和 iOS 平台,具体处理方式有所不同。
#### 对于 Android 设备
可以调用 `plus.io` 获取设备根目录下的指定路径用于存放下载后的文件[^1]:
```javascript
function downloadVideoForAndroid(videoUrl, savePath) {
uni.downloadFile({
url: videoUrl,
success(res) {
if (res.statusCode === 200) {
const tempFilePath = res.tempFilePath;
plus.io.resolveLocalFileSystemURL(savePath, function(entry) {
entry.getFile('video.mp4', { create: true }, fileEntry => {
fileEntry.createWriter(writer => {
writer.onwriteend = () => {
console.log("Write successful");
};
writer.onerror = err => {
console.error(`Failed to write ${err}`);
};
let blob = new Blob([tempFilePath], { type: 'video/mp4' });
writer.write(blob);
});
});
});
}
},
fail(err) {
console.error(`Download failed ${JSON.stringify(err)}`);
}
});
}
```
#### 针对 iOS 设备
iOS 的沙盒机制较为严格,因此需借助 `plus.downloader` 创建下载任务并将文件存放到应用程序文档目录下[^2]:
```javascript
function downloadVideoForIOS(videoUrl) {
var dtask = plus.downloader.createDownload(
videoUrl,
{},
function(d, status) {
if (status == 200) {
// 下载成功后可选地通知用户或更新UI
alert("Download completed!");
} else {
alert("Download failed:" + status);
}
}
);
dtask.start();
}
```
为了使代码更简洁通用,在实际项目里通常会封装一个跨平台的方法来自动判断当前运行环境从而选择合适的逻辑分支执行。
阅读全文
相关推荐
















