【原】東方耀手把手教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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章