博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react native 之 react-native-image-picke的详细使用图解
阅读量:4086 次
发布时间:2019-05-25

本文共 2254 字,大约阅读时间需要 7 分钟。

最近需要在react native项目中集成相机和相册的功能,于是在网上找了一个好用的第三方插件:.

http://www.cnblogs.com/shaoting/p/6148085.html

该插件可以同时给iOS和Android两个平台下使用,但是需要配置下各自平台下的文件,上有详细的文字说明,但是本人对于文字向来无感,所以特地图解记录下配置说明和用法.

 1.   首先,安装下该插件:

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

 2.   对于github上介绍的link命令,我并没有使用,所以跳过

下面对于各自平台进行配置即可.

iOS:

  1. In the XCode's "Project navigator", right click on your project's Libraries folder ➜ Add Files to <...>
  2. Go to node_modules ➜ react-native-image-picker ➜ ios ➜ select RNImagePicker.xcodeproj

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

      

    3.Add RNImagePicker.a to Build Phases -> Link Binary With Libraries

 

     

     4.For iOS 10+, Add the NSPhotoLibraryUsageDescription and NSCameraUsageDescription keys to your Info.plist with strings describing why your app needs these permissions

=>对于适配iOS10,需要在info.plist中配置NSPhotoLibraryUsageDescription和NSCameraUsageDescription

iOS平台配置完毕.

Android:

    1.Add the following lines to android/settings.gradle:

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

 

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

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

  

     3.Add the required permissions in AndroidManifest.xml:

1
2
<uses-permission android:name=
"android.permission.CAMERA" 
/>
<uses-permission android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>

  

     4.Add the import and link the package in MainApplication.java:   

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

 

 

 

OK,安卓这边也配置完毕.

用法:

   配置弹出框信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import  
ImagePicker from 
'react-native-image-picker'
//第三方相机
var photoOptions = {
    
//底部弹出框选项
    
title:
'请选择'
,
    
cancelButtonTitle:
'取消'
,
    
takePhotoButtonTitle:
'拍照'
,
    
chooseFromLibraryButtonTitle:
'选择相册'
,
    
quality:
0.75
,
    
allowsEditing:
true
,
    
noData:
false
,
    
storageOptions: {
        
skipBackup: 
true
,
        
path:
'images'
    
}
}
 

点击事件

1
2
3
4
5
6
7
8
cameraAction = () =>{
         
ImagePicker.showImagePicker(photoOptions,(response) =>{
             
console.log(
'response'
+response);
             
if 
(response.didCancel){
                 
return
             
}
         
})
    
}

  

案例:

 demo地址:

 

你可能感兴趣的文章
Android Handler 消息处理机制
查看>>
微信公众号文字该如何排版?
查看>>
印象笔记终于支持 Markdown 了
查看>>
Android RxJava + Retrofit + Dagger2 + MVP
查看>>
谈谈认知与知识
查看>>
Android Studio 插件推荐一
查看>>
Java 中 String 类为什么要设计成不可变的?
查看>>
Java的强引用,软引用,弱引用,虚引用及其使用场景
查看>>
String、StringBuilder和StringBuffer
查看>>
Java反射基础
查看>>
因代码规范导致枪击案,这样黑程序员不太好吧 。
查看>>
Android事件分发机制
查看>>
Android Clean 架构
查看>>
Android 音视频学习资源汇总
查看>>
我的 2018 年终总结
查看>>
JVM 中如何判断对象可以被回收
查看>>
JVM 内存结构
查看>>
JVM 中的内存溢出
查看>>
maven的使用
查看>>
SpringMVC配置
查看>>