• 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

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

  • 相关阅读:
    ESP32IDF出现Syntax Warning in cmake code at column 47报错
    腾讯云数据库SaaS致力于构建数据库分布式云,为更多更广的用户提供服务
    Hystrix 如何在不引入 Archaius 的前提下实现动态配置更新
    扩散模型实战(九):使用CLIP模型引导和控制扩散模型
    湖仓一体全面开启实时化时代
    设备模型(自动mknod)
    CSS 技术
    【译】A unit of profiling makes the allocations go away
    【笔记】大话设计模式14-观察者模式
    NLP:使用 SciKit Learn 的文本矢量化方法
  • 原文地址:https://blog.csdn.net/wwyxjjz/article/details/126147023