rn中访问相册和保存图片

在react native中访问照片和保存图片。实现如下的简单效果。

1、效果图

首先,在react native 中有 CameraRoll 这样的api,官网参考:

CameraRoll模块提供了访问本地相册的功能。在iOS上使用这个模块之前,你需要先链接RCTCameraRoll库(ios)

{

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重新运行项目

}

2、访问权限

在IOS10.之后访问相册,相机,麦克风,数据,无线等,都需要添加权限,注意:这里添加权限的位置是在Xcode工程下,如这是我创建的工程,


info.plist是添加权限的地方,注意添加的key关键字不能有偏差,string是添加值,向用户说明,这里提供一些其他的:

NSContactsUsageDescription -> 通讯录

NSMicrophoneUsageDescription -> 麦克风

NSPhotoLibraryUsageDescription -> 相册

NSCameraUsageDescription -> 相机

NSLocationAlwaysUsageDescription -> 地理位置

NSLocationWhenInUseUsageDescription -> 地理位置


3、调用方法 

static saveImageWithTag(tag) 不建议,我尝试一下之后,app建议我使用下面一个保存的方法。

static saveToCameraRoll(tag, type?)

在Android上,标签必须是当地的图像或视频的URI,比如“文件:/ / / sdcard / img.png”。

在iOS,标签可以是任何图像URI(包括本地、远程资产库中和base64数据URI)或本地视频文件的URI(远程或不支持数据URI保存视频在这个时候)。如果标签的文件扩展名。mov。mp4,推断出视频。否则它将被视为一个照片。覆盖的自动选择,您可以传递一个可选的类型参数,必须“照片”或“视频”之一。返回一个承诺将解决新的URI。

在这里可以是图片,也可以是视频文件,saveToCameraRoll更加全面一些。

static getPhotos(params: object)

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

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会抛一个无法捕捉的异常,导致红屏。


打印data,在控制台显示的数据,安卓和ios不一样。

图片取自东方耀老师在关于CameraRoll里的说明



4、遇到问题

在使用saveToCameraRoll 中。

使用了参数,而这个方法中也说明了,使用了字符串,URI,即图片的地址。因此,在定义保存两个图片的时候,我定义了first ,second


注意这里的地址:是图片所示,而不是引用图片时候../../imgs/XXX.png。 


5、github地址:在工程Component下Cammera。

https://github.com/krislee94/TestComponent

以上在做关于相册的时候遇到的问题,在这里做下笔记,如有不足,希望各位大神点出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容