5***@qq.com
5***@qq.com
  • 发布:2020-03-09 17:13
  • 更新:2020-04-13 23:46
  • 阅读:758

【报Bug】V3引擎安卓APP端uni.saveImageToPhotosAlbum调用成功, 图片没有保存

分类:uni-app
v3

详细问题描述

换成V3引擎之后, 调用uni.saveImageToPhotosAlbum方法, 调用之后进入了success回调, 回调的数据为{"errMsg":"saveImageToPhotosAlbum:ok"}, 但是图片没有保存到相册, 包括在文件管理器中都找不到, ios可以正常保存图片

[内容]

重现步骤

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[IDE版本号] 2.6.1

[windows版本号] win10

uni-app运行环境说明

编译器版本:2.6.1(v3)

安卓APP

[自定义组件模式]

App运行环境说明

[Android版本号] Android10, MIUI 11.0.1

[手机型号] 小米 MIX3

附件

[可重现代码片段]

                    let url = 'xxx'  
                    uni.getImageInfo({  
                        src: url,  
                        success(res) {  
                            console.log('获取图片信息', res)  
                            let saveImage = () => {  
                                uni.saveImageToPhotosAlbum({  
                                    filePath: res.path,  
                                    success(res) {  
                                        console.log(res)  
                                        uni.showToast({  
                                            title:'保存成功'  
                                        })  
                                    },  
                                    fail() {  
                                        uni.showToast({  
                                            title:'保存海报失败',  
                                            icon: 'none'  
                                        })  
                                    }  
                                })  
                            }  
                            // #ifdef MP-WEIXIN  
                            uni.authorize({  
                                scope:'scope.writePhotosAlbum',  
                                success() {  
                                    saveImage()  
                                },  
                                fail() {  
                                    uni.showToast({  
                                        title: '未获取到相册权限',  
                                        icon: 'none'  
                                    });  
                                }  
                            })  
                            // #endif  
                            // #ifndef MP-WEIXIN  
                            saveImage()  
                            // #endif  

                        },  
                        fail() {  
                            uni.showToast({  
                                title: '海报获取失败',  
                                icon: 'none'  
                            });  
                        }  
                    })  
                })

联系方式

[QQ]

2020-03-09 17:13 负责人:无 分享
已邀请:
5***@qq.com

5***@qq.com (作者)

仔细调了一下, 问题出在uni.getImageInfo方法, 在V3模式下(安卓环境)getImageInfo方法返回的文件地址为一个.0后缀的文件名, 而不是图片文件名, 保存文件时直接以.0后缀保存了, 因此在手机中找不到保存的图片
getImageInfo方法获取到的数据如下:

{  
    "errMsg": "getImageInfo:ok",  
    "path": "file:///data/user/0/io.dcloud.HBuilder/cache/image_manager_disk_cache/cbd6a4895bfb5c9c8f5a66ae18c2eca693eaee577b8f8ab3203f6be4207949cb.0",  
    "width": 400,  
    "height": 400,  
    "orientation": "up",  
    "type": "jpeg"  
}
DCloud_UNI_HDX

DCloud_UNI_HDX

通过什么方式得到的图片 url ?

  • 5***@qq.com (作者)

    是一个网络url, 通过接口获取的

    2020-03-12 20:39

luch

luch - vue 开发者,luch-request 作者

我也需要保存图片不成功的问题了

路滑

路滑

我也出现这个bug。之前老版本的hbuildx是可以的,更新后默认用V3模式,苹果可以保持图片,安卓不行了,查看了,确实后缀变成.0了,有什么办法解决的

  • luch

    把api 换成 uni.downloadFile 即可解决

    2020-04-14 10:32

  • 路滑

    回复 luch: 谢谢,确实可以

    2020-04-17 20:17

  • 1***@qq.com

    回复 luch: 感谢 可以了

    2020-06-07 19:14

要回复问题请先登录注册