【原】东方耀手把手教React Native实战之45API学习CameraRoll_笔记[难]

CameraRoll模块提供了对手机中保存的图片、视频文件进行遍历访问与操作。
提供两个静态方法
//相当重要

static getPhotos(params: object)

可以得到手机中所有的图片和视频(不仅仅是使用摄像头拍摄的照片、视频,还有各个应用自己下载到手机的图片与视频)

params:对象 一些筛选的规则 有4个成员变量

1.first 数值 希望获取多少张图片的信息

2.groupTypes 字符串 默认为SavedPhotos [Album All Event Faces Library PhotoStream] 仅支持IOS平台 用来指定获取图片或视频的类型

3.assetType 字符串 默认为Photos 表示只获取图片 [All Videos]

4.after 字符串 用来记录上一次获取图片的结束标志 方便可以接着上次的位置继续获取 它的值不能由开发者随意赋予,而是应当在上一次获取图片后保存其值。通常,在Android平台,一开始就给这个值为null,但是在IOS平台,设置为null会抛一个无法捕捉的异常,导致红屏。

返回一个带有图片标识符JSON对象的Promise

Android平台的如下:

IOS平台的如下:

注意:不管是android平台还是ios平台,得到的image对象,可以作为一个整体,传递给Image组件,用来显示图片

可以分批次读取手机中的所有图片:监听ScrollView滑动到底部时,继续getPhotos,这时需要用after成员变量,递归调用getPhotos,当page_info.has_next_page为false时返回

CameralRoll在IOS平台中需要添加链接库才能运行,否则报错找不到api:

1.\node_modules\react-native\Libraries\CameraRoll下的Xcode项目文件RCTCameraRoll.xcodeproj拖动到当前Xcode项目的Libraries目录

2.选中当前项目,在右边选择Build Phases,点击打开子项目Link Binary With Libraris

3.打开第一步插入的RCTCameraRoll.xcodeproj,再打开它的子目录Products,将子目录下的libRCTCameraRoll.a文件拖到Link Binary With Libraris列表中

4.使用Xcode重新运行项目

static saveImageWithTag(tag) 保存一个图片到相册

tag 在安卓上,本参数是一个本地URI(是把本地的图片保存到相册中),例如”file:///sdcard/img.png”.

在iOS设备上可能是以下之一:

1、本地URI 2、资源库的标签 3、非以上两种类型,表示图片数据将会存储在内存中(并且在本进程持续的时候一直会占用内存)。

返回一个Promise,操作成功时返回新的URI。

cameraroll_data.png (78.45 KB, 下载次数: 1)
cameraroll_data.png
cameraroll_data_ios.png (138.99 KB, 下载次数: 1)
ios
ios

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值