• uni-app 下载文件 预览 + 保存自定义目录


    作为使用uni-app的小白来说  尝试了好几种方法 终于得到了我想要的效果(如下)

    1.点击下载按钮(文件 或者图片)

     2.预览 :用户自定义选择查看的软件(图片在手机相册 文件用其他打开预览)

    3.自定义存储的项目文件 :(这里面就是下载的所有文件)

    本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,就是用户文件管理器能看到的了,之后我创建 xxx培训文件 作为文件夹,后缀是用于文件命名和格式修改,大家可以使用变量

    官方文档下载文件永久保存uni.downloadFile和uni.saveFile,文件存放的位置开始时临时的,转成永久的后

    它默认保存的位置在“内部存储\Android\data\io.dcloud.HBuilder\apps\HBuilder\doc\uniapp_save”里

    so 我们自定义目录最方便 代码如下:

    1. Download() {
    2. /* #ifdef H5 */
    3. uni.showToast({
    4. icon: 'none',
    5. title: "仅支持app下载"
    6. })
    7. /* #endif */
    8. var url = "http://xxxxx"
    9. let dtask = plus.downloader.createDownload(url, {
    10. //本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,就是用户文件管理器能看到的了,之后我创建微垠作为文件夹,后缀是用于文件命名和格式修改,大家可以使用变量。
    11. filename: "file://storage/emulated/0/微垠/" + "微垠影视v1.2.apk" //利用保存路径,实现下载文件的重命名
    12. },
    13. function(d, status) {
    14. //d为下载的文件对象
    15. if (status == 200) {
    16. //下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
    17. let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
    18. plus.runtime.openFile(d.filename); //选择软件打开文件
    19. } else {
    20. //下载失败
    21. plus.downloader.clear(); //清除下载任务
    22. }
    23. })
    24. dtask.start();
    25. }

     补充:

    uni-app 多端兼容 判断条件如下:

    1. app:
    2. /* #ifdef APP-PLUS */
    3. (放代码块)
    4. /* #endif */
    5. h5:
    6. /* #ifdef H5 */
    7. (放代码块)
    8. /* #endif */

    作者:微微一笑绝绝子

    出处:https://www.cnblogs.com/wwyxjjz/p/16548124.html

    本博客文章均为作者原创,转载请注明作者和原文链接。

  • 相关阅读:
    JDK21新特性Record Patterns记录模式详解
    第十九章 自动化理论
    LeetCode 374. 猜数字大小
    ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR
    比特币中的挖矿到底是什么意思
    SystemVerilog学习-09-进程间同步、通信和虚方法
    .net---继承和多态
    视频剪辑srt字幕的添加步骤,三分钟学会这个方法
    基于springboot广场舞团系统springboot16
    Ubuntu openKylin 安装open VMware tool 工具
  • 原文地址:https://blog.csdn.net/wwyxjjz/article/details/126147023