Page 1 of 1

ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 Apr 29日 08:26
by 13534583150
  • Tuya MiniApp Tools 版本信息:关于中查看
    最新版
    • App 应用版本信息: 设置-关于中进行查看~
      basekit: 3.11.7
      @ray-js/ray:1.4.60
    • @ray-js/ray, @ray-js/panel-sdk的版本(如使用ray开发)在package.json查看~
    • 移动设备信息:手机型号及系统
      iphone 14
    • 相关代码:可复现该问题的代码内容

      Code: Select all

      saveImageToPhotosAlbum({
                  filePath: m.detail,
                  success: r => {
                      console.log(r)
                  },
                  fail: e => {
                      console.log(e)
                  }
              })

传的是base64,canvas.toDataURL("image/png")拿到的
- 日志信息:错误日志或 IDE 运行日志等~

Code: Select all

- 问题描述(复现步骤):

我们想做的是分享当前截图,然后分享到各种第三方,可是你们没有截图这种功能,目前是用canvas去绘制的poster,然后转base64,再分享,但是ty.share这个接口的imagePath,只能接受本地路径和网络路径,所以现在就只能保存到本地,再去做分享了
- 预期结果:
保存图片成功,回调本地路径,然后可使用ty.share去分享出去
另外,目前智能生活basekit3.10以上的只有ios,安卓最新版本都没有支持这个能力,望快升级
- 实际结果:
errorCode:7
errorMsg:"API Internalprocessing failed'
innerError:ferrorMsg:未能完成操作。(PHPhotosErrorDomain错误3302。)',errorCode:'3302'}


Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 Apr 29日 14:29
by 13534583150

Code: Select all

const file = await getFileSystemManager()
        // 获取权限
        authorize({
            scope: "writePhotosAlbum",
            success: r => {
                // 写入base64
                const filePath = env.USER_DATA_PATH + '/image.png'
                file.writeFile({
                    filePath,
                    data: m.detail,
                    encoding: 'base64',
                    success: r => {
                        console.log(r, '---- success')
                    },
                    fail: e => {
                        console.log(e)
                    }
                })
            },
            fail: e => {
                console.log(e)
            }
        })

第二种办法,也是报写入失败。。


Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 Apr 29日 14:32
by xuanyi

Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 Apr 29日 14:45
by 13534583150

已获取授权


Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 Apr 29日 14:49
by xuanyi
13534583150 2024年 Apr 29日 14:29

Code: Select all

const file = await getFileSystemManager()
        // 获取权限
        authorize({
            scope: "writePhotosAlbum",
            success: r => {
                // 写入base64
                const filePath = env.USER_DATA_PATH + '/image.png'
                file.writeFile({
                    filePath,
                    data: m.detail,
                    encoding: 'base64',
                    success: r => {
                        console.log(r, '---- success')
                    },
                    fail: e => {
                        console.log(e)
                    }
                })
            },
            fail: e => {
                console.log(e)
            }
        })

第二种办法,也是报写入失败。。

调试日志。或App日志上传一下


Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 Apr 29日 14:53
by 13534583150

{
"errorCode": 10019,
"errorMsg": "write file error"
}

另外,第一种方法或者也麻烦看看
都是canvas.toDataURL('image/png')转出来的base64


Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 Apr 29日 15:00
by 13534583150

是在rjs里面去处理canvas的,然后通过this.callMethod传到js文件,再通过triggerEvent这个方法传到对应的页面,只是一个base64的字符串而已


Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 May 9日 13:37
by 智能小程序开发者

你好。目前不支持base64 保存到相册


Re: ray小程序分享功能和saveImageToPhotosAlbum这个api导致的保存图片问题

Posted: 2024年 May 10日 13:58
by 智能小程序开发者

https://github.com/Tuya-Community/tuya- ... x.tsx#L132 可以查看一下这个示例代码