m***@qq.com
m***@qq.com
  • 发布:2020-08-26 14:45
  • 更新:2020-08-26 14:45
  • 阅读:1059

【报Bug】iphone6下, saveFile 失败的问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: window 7

HBuilderX类型: 正式

HBuilderX版本号: 2.8.8

手机系统: iOS

手机系统版本号: iOS 12.4

手机厂商: 苹果

手机机型: iphone 6

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

视图:

<view>  
  <view>tempSrc:</view>  
  <image :src="tempSrc" :webp="true"></image>  
  <view>imageSrc:</view>  
  <image :src="imageSrc" :webp="true" ></image>  
</view>

js:

var downloadTask = uni.downloadFile({  
  url:"http://dingyue.ws.126.net/2020/0331/558792e9j00q80s3p006dc000rs017dm.jpg",  
  success: (res) => {  
    console.log("downloadFile success:",res);  
    this.tempSrc = res.tempFilePath;  
    uni.saveFile({  
      tempFilePath: res.tempFilePath,  
      fail:(e) => {  
        console.log("saveFile fail:",e);  
      },  
      success: (res) => {  
        console.log("saveFile success:", res);  
        this.imageSrc = res.savedFilePath;  
      },  
    });  
  }  
});

操作步骤:

在 page 中运行上面的js。查看控制台打印内容和界面显示情况。

预期结果:

控制台打印:
downloadFile success:
saveFile success:
界面中显示两张图片(一张临时图片、一张是保存过的图片)

实际结果:

在 iphone 6 下运行:
异常:下载成功,保存失败,界面上没有显示图片;
在 redmi 7 下运行:
正常:下载成功,保存成功,界面上显示两张图片;

具体看附件图片

bug描述:

一些特殊情况下,saveFile 失败的问题;

iphone6 中,使用 uni.downloadFile api 下载一些图片时。(如: "http://dingyue.ws.126.net/2020/0331/558792e9j00q80s3p006dc000rs017dm.jpg") 时,虽然下载成功,但是图片无法被 saveFile ,也无法被 image 组件显示的问题。

但只有一些文件会产生这个问题。

分析:在 iphone 6 中,上面那个文件下载后,临时文件名为 “2020%2F0331%2F1cb09421j00q80w1i006mc000rs017dm.jpg“ 。存在几个转义后的字符,可能是产生问题的原因。(红米7 下载后的文件名,不包含这些转义字符)

ps. 通过 iTunes 查看 HBuiler 的文件,发现这个文件确实已经下载到了临时目录下。

2020-08-26 14:45 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复