uni-app ios保存gif会卡死或闪退

uni-app ios保存gif会卡死或闪退

开发环境 版本号 项目创建方式
Windows win10 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

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

HBuilderX类型:Alpha

HBuilderX版本号:3.1.3

手机系统:iOS

手机系统版本号:IOS 14

手机厂商:苹果

手机机型:iphone11

页面类型:nvue

打包方式:云端

项目创建方式:HBuilderX

### 示例代码:

```html
<template>  
<view class="content">  
<image [@tap](/user/tap)="previewImg" mode="aspectFill" class="swiper-img"  
src="https://rabbit-bang.oss-cn-hangzhou.aliyuncs.com/1614164722690.jpg"&gt;</image>
</view>
</template>  
<script>
export default {
data() {
return {
image: 'https://rabbit-bang.oss-cn-hangzhou.aliyuncs.com/1614164722690.jpg'
}
},
onLoad() {  
},
methods: {  
previewImg() {  
uni.previewImage({  
urls:[this.image],  
current:this.image  
})  
}  
}
}
</script>

操作步骤:

  1. 点击图片预览
  2. 长按图片保存

预期结果:

保存成功

实际结果:

ios保存gif 闪退或卡死

bug描述:

ios保存gif会卡死或闪退

相关链接:

下载附件


更多关于uni-app ios保存gif会卡死或闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

已修复 更新HBuilder的3.1.4 alpha 进行验证即可

更多关于uni-app ios保存gif会卡死或闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


请提供可以稳定复现的示例工程

<script> export default { data() { return { image: 'https://rabbit-bang.oss-cn-hangzhou.aliyuncs.com/1614164722690.jpg' } }, onLoad() {
</script>

已上传示例 test.zip 帮忙看看 谢谢

Bug 已确认

这个问题在uni-app中确实存在,主要是iOS系统对GIF图片保存的处理机制导致的。以下是关键点分析:

  1. 问题根源:
  • iOS的WKWebView内核在处理GIF保存时存在内存管理问题
  • 大尺寸GIF图片会导致内存暴增,引发闪退
  1. 临时解决方案:
// 改用downloadFile+saveImageToPhotosAlbum组合
uni.downloadFile({
    url: this.image,
    success: (res) => {
        if(res.statusCode === 200){
            uni.saveImageToPhotosAlbum({
                filePath: res.tempFilePath,
                success: () => {
                    uni.showToast({title: '保存成功'});
                }
            });
        }
    }
});
回到顶部