react-native-image-picker用法

1, 首先,安装下该插件。

npm install react-native-image-picker@latest --save

2,自动安装(做了这一步 下面安装的平台设置大部分都自动添加好了)

react-native link

 

3, 针对Android和iOS平台分别进行配置

 

## android 平台配置

a,在android/settings.gradle文件中添加如下代码:    

include ':react-native-image-picker'
project(':react-native-image-picker').projectDir = new File(settingsDir, '../node_modules/react-native-image-picker/android')

b,在android/app/build.gradle文件的dependencies中添加如下代码:

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.+' // <- USE 2.2.+ version
    }
    ...
}
...

c,Update the gradle version to 2.14.1 in android/gradle/wrapper/gradle-wrapper.properties:

...
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

d,Add the compile line to the dependencies in android/app/build.gradle:

dependencies {
    compile project(':react-native-image-picker')
}

e,在AndroidManifest.xml文件中添加权限:

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
...

f,最后在MainApplication.Java文件中添加如下代码:

import com.imagepicker.ImagePickerPackage;
...
new ImagePickerPackage()

Android环境就配置完成。

 

##iOS平台配置

 1,打开Xcode打开项目,点击根目录,右键选择 Add Files to ‘XXX’,选中项目中的该路径下的文件即可:node_modules -> react-native-image-picker -> ios -> select RNImagePicker.xcodeproj 

这里写图片描述

2,添加成功后使用link命令:react-native link react-native-image-picker 。 
3,打开项目依次使用Build Phases -> Link Binary With Libraries将RNImagePicker.a添加到项目依赖。 
这里写图片描述
4,对于iOS 10+设备,需要在info.plist中配置NSPhotoLibraryUsageDescription和NSCameraUsageDescription。 
这里写图片描述

 

4. 参数

optioniOSAndroid描述
titleOKOK标题
cancelButtonTitleOKOK取消按钮
takePhotoButtonTitleOKOK拍照按钮
chooseFromLibraryButtonTitleOKOK从图库选择照片
customButtonsOKOK自定义按钮
cameraTypeOK-类型 'front' or 'back'
mediaTypeOKOK图片或视频 'photo', 'video', or 'mixed' on iOS, 'photo' or 'video' on Android
maxWidthOKOK最长宽 Photos only
maxHeightOKOK最长高 Photos only
qualityOKOK图片质量 0 to 1, photos only
videoQualityOKOK视频质量 'low', 'medium', or 'high' on iOS, 'low' or 'high' on Android
durationLimitOKOK最大视频录制时间,以秒为单位
rotation-OKPhotos only, 0 to 360 旋转角度
allowsEditingOK-bool 是否可以编辑
noDataOKOK如果为true,则禁用data生成的base64 字段(极大地提高大图片的性能)
storageOptionsOKOK如果提供此密钥,该图像将被保存在DocumentsiOS 应用程序的目录中,或者保存在PicturesAndroid上的应用程序目录(而不是临时目录)
storageOptions.skipBackupOK-如果true,该照片将不会备份到iCloud
storageOptions.pathOK-如果设置,将保存图像Documents/[path]/而不是根目录Documents
storageOptions.cameraRollOKOK如果为true,裁剪的照片将保存到iOS相机胶卷或Android DCIM文件夹。
storageOptions.waitUntilSavedOK-如果为true,则会延迟回复回复,直到照片/视频保存到相机胶卷后。如果刚刚拍摄了照片或视频,则只有在该AND cameraRoll均为真时,才会在响应对象中提供文件名和时间戳字段。
permissionDenied.title-OK解释权限对话框的标题。默认情况下Permission denied。
permissionDenied.text-OK解释权限对话框的消息。默认情况下To be able to take pictures with your camera and choose images from your library.。
permissionDenied.reTryTitle-OK重试按钮的标题。默认re-try
permissionDenied.okTitle-OK确定按钮的标题。默认I'm sure

响应对象

keyiOSAndroid描述
didCancelOKOK点击了取消
errorOKOK出现错误信息
customButtonOKOK点击了自定义按钮
dataOKOKbase64编码的图像数据(仅限照片)
uriOKOK设备上的本地文件资源(照片或视频)
origURLOK-照片库中原始资源的网址(如果存在)
isVerticalOKOK如果图像是垂直定向的,则会是真实的
widthOKOK图像宽(仅限照片)
heightOKOK图像高度(仅限照片)
fileSizeOKOK文件大小(仅限照片)
type-OK文件类型(仅限照片)
fileNameOK (photos and videos)OK (photos)文件名称
path-OK文件路径



 

转载于:https://www.cnblogs.com/zhengyan/p/9102080.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值