不推荐使用 CameraRoll.saveToCameraRoll(tag,type) 使用保存功能

Posted

技术标签:

【中文标题】不推荐使用 CameraRoll.saveToCameraRoll(tag,type) 使用保存功能【英文标题】:CameraRoll.saveToCameraRoll(tag,type) is deprecated use the save function 【发布时间】:2020-06-30 00:19:57 【问题描述】:

我正在尝试将捕获的图像和视频从手机摄像头保存到我的设备库中,但我收到权限被拒绝和错误消息指出 CameraRoll.saveToCameraRoll(tag, type) 已弃用。请改用保存功能。

takePicture = async () => 
        if (this.camera) 
            const options =  quality: 1 ;
            const data = await this.camera.takePictureAsync(options);
            //save photo
            CameraRoll.saveToCameraRoll(data.uri, 'photo').then(onfulfilled => 
                Toastandroid.show(onfulfilled, ToastAndroid.SHORT);
            ).catch(error => 
                ToastAndroid.show(`$error.message`, ToastAndroid.SHORT);
            );
        
    ;

【问题讨论】:

【参考方案1】:

假设您使用的是新版本的 CameraRoll,则不推荐使用 saveToCameraRoll 函数以支持 save 函数。您唯一需要做的更改是将 saveToCameraRoll 更改为如下所示保存

takePicture = async () => 
        if (this.camera) 
            const options =  quality: 1 ;
            const data = await this.camera.takePictureAsync(options);
            //save photo
            CameraRoll.save(data.uri, 'photo').then(onfulfilled => 
                ToastAndroid.show(onfulfilled, ToastAndroid.SHORT);
            ).catch(error => 
                ToastAndroid.show(`$error.message`, ToastAndroid.SHORT);
            );
        
    ;

【讨论】:

我试过你的代码,但在保存之前我们必须先请求写入存储的权限 @Guruparan Giritharan 我已经尝试过 CameraRoll。保存它的罚款,但当我点击保存按钮时,它显示此错误。 TypeError: null 不是对象(评估'_nativeInterface.default.saveToCameraRoll') 您能详细说明或显示您的按钮代码吗?

以上是关于不推荐使用 CameraRoll.saveToCameraRoll(tag,type) 使用保存功能的主要内容,如果未能解决你的问题,请参考以下文章

为啥不推荐使用 (javax.servlet.)SingleThreadModel?

为什么不推荐使用 BeanUtils ?

为什么不推荐使用 BeanUtils ?

如何设置相机视图旋转(不使用不推荐使用的代码)

为啥 PoolingClientConnectionManager 中不推荐使用所有方法?

不推荐使用 invalidateOptionsMenu()