uni-app中uni.previewImage打开base64图片时手机会闪退
uni-app中uni.previewImage打开base64图片时手机会闪退
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:10
HBuilderX类型:正式
HBuilderX版本号:3.1.4
手机系统:Android
手机系统版本号:Android 11
手机厂商:vivo
手机机型:iqoo3
页面类型:vue
打包方式:云端
示例代码:
preview(){
uni.previewImage({
urls: [任意base64图],
current: 1
})
},
操作步骤:
preview(){
uni.previewImage({
urls: [任意base64图],
current: 1
})
},
预期结果:
preview(){
uni.previewImage({
urls: [任意base64图],
current: 1
})
},
实际结果:
preview(){
uni.previewImage({
urls: [任意base64图],
current: 1
})
},
bug描述:
base 64 图片打开uni.previewImage 方法手机会闪退
更多关于uni-app中uni.previewImage打开base64图片时手机会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
7 回复
我这也是用base64场景 现在还是没修复
更多关于uni-app中uni.previewImage打开base64图片时手机会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我到现在也遇到这个问题了,还没修复
把图片存到本地,再用临时路径访问。
怎么转换啊
base64转临时路径呗
在uni-app中,uni.previewImage
直接使用base64格式图片在Android设备上确实可能导致闪退,尤其是在较新的Android版本(如Android 11)上。这是因为base64字符串可能过长,处理时占用过多内存,触发系统内存限制或引发解析错误。
建议将base64图片转换为临时文件路径后再使用uni.previewImage
。可以通过uni.getFileSystemManager().writeFile()
方法将base64数据写入临时文件,获取文件路径后传入预览接口。示例代码:
preview() {
const base64Data = 'your_base64_string_here'; // 替换为实际base64数据
const filePath = `${wx.env.USER_DATA_PATH}/temp_preview_image.png`;
const fileManager = uni.getFileSystemManager();
fileManager.writeFile({
filePath: filePath,
data: base64Data.replace(/^data:image\/\w+;base64,/, ''),
encoding: 'base64',
success: () => {
uni.previewImage({
urls: [filePath],
current: 0
});
},
fail: (err) => {
console.error('文件写入失败:', err);
}
});
}