RN 使用第三方组件之react-native-image-picker(拍照/从相册获取图片)

首先给个github地址:https://github.com/react-community/react-native-image-picker  英文不行的看下面这个笔记

该插件可以同时给iOS和Android两个平台下使用,但是需要配置下各自平台下的文件

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

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

2.   先别link,先添加进来该库之后 再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

OK,添加进来之后,再进行 link命令.  react-native link react-native-image-picker

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

(注意这里的只要出现RNImagePicker.就可以了,跟前面的图标没关系)

 

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

(点击加号 选择privacy camera usage Description 和 privacy. PhotoLibraryUsageDescription )

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(options, (response) => {
  console.log(‘Response = ‘, response);

  if (response.didCancel) {
    console.log(‘User cancelled image picker‘);
  }
  else if (response.error) {
    console.log(‘ImagePicker Error: ‘, response.error);
  }
  else if (response.customButton) {
    console.log(‘User tapped custom button: ‘, response.customButton);
  }
  else {
    let source = { uri: response.uri };

    // You can also display the image using data:
    // let source = { uri: ‘data:image/jpeg;base64,‘ + response.data };

    this.setState({
      avatarSource: source
    });
  }
});

    }

  

<Image source={this.state.avatarSource} style={styles.uploadAvatar} />

这里注意的是 ios的模拟器不能拍照哦

案例:

时间: 2024-10-11 07:20:42

RN 使用第三方组件之react-native-image-picker(拍照/从相册获取图片)的相关文章

React Native之Fetch简单封装、获取网络状态

1.Fetch的使用 fetch的使用非常简单,只需传入请求的url fetch('https://facebook.github.io/react-native/movies.json'); 当然是否请求成功与数据的处理,我们还需处理成功与失败的回调 function getMoviesFromApiAsync() { return fetch('https://facebook.github.io/react-native/movies.json') .then((response) =>

RN 使用第三方组件之react-native-image-picker

首先给个github地址:https://github.com/react-community/react-native-image-picker 该插件可以同时给iOS和Android两个平台下使用,但是需要配置下各自平台下的文件 1.   首先,安装下该插件:      npm install react-native-image-picker@latest --save 2.   先别link,先添加进来该库之后 再link. 下面对于各自平台进行配置即可.  iOS:  手动添加库 :

React Native - 使用Geolocation进行定位(获取当前位置、监听位置变化)

1,getCurrentPosition()方法介绍 static getCurrentPosition(geo_success, geo_error?, geo_options? 该方法用于获取当前的位置,其参数如下: (1)geo_success:成功回调函数 (2)geo_error:失败回调函数 (3)geo_options:传递的参数.其支持的属性有: timeout:指定获取地理位置的超时时间,默认不限时.单位为毫秒. maximumAge:最长有效期,在重复获取地理位置时,此参数指

react native 的js 文件从哪里获取

/** * Loading JavaScript code - uncomment the one you want. * * OPTION 1 * Load from development server. Start the server from the repository root: * * $ npm start * * To run on device, change `localhost` to the IP address of your computer * (you can

React Native 调用原生Android组件

在如今的App中,已经有成千上万的原生UI部件了--其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多.React Native已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件.而且,说不定你曾经为自己以前的App还封装过一些组件,React Native肯定没法包含它们.幸运的是,在React Naitve应用程序中封装和植入已有的组件非常简单. 比如WebView,官方并没有提供Android端的实现,那么我们现

React Native组件的结构和生命周期

React Native组件的结构和生命周期 一.组件的结构 1.导入引用 可以理解为C++编程中的头文件. 导入引用包括导入react native定义的组件.API,以及自定义的组件. 1.1 导入组件 1.2 导入API 1.3 导入自定义组件 2.组件的声明 组件的生命分为组件的定义和样式.组件的定义有各种组件的组成结构.方法的定义. 2.1 组件的定义 2.2 组件样式 组件样式的定义可以直接在组件的定义中的style中定义.但是对于样式复杂的组件需要组件样式. 3.组件的注册或导出

React Native的iOS开发步骤以及崩溃收集

React Native的iOS开发以及崩溃收集 简介 React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP. React Native着力于提高多平台开发的开发效率 -- 仅需学习一次,编写任何平台.(Learn once, write anywhere) Facebook已经在多项产品中使用了React Native,并且将持续地投入建设React Native. 准备 安装 iOS只能MAC下开发,需要Xcode; An

掌握React Native技术转型随意切换

第1章 课程预热React 与 React Native的区别,为什么学习 React Native. 第2章 初识 React Native快速搭建一个 React Native,了解 RN 的项目代码结构. 第3章 RN 入门知识学习学习React 的组件概念,ES5/ES6 两种组件形态,父子组件通信以及组件生命周期. 第4章 升级 React Native 重要补录这一章节是讲师针对课程上线以来,学生的常见问答,讲师做了一些总结补充视频. 第5章 项目初始准备作为实战编程的上手篇,需要又

React Native 系列(三)

前言 本系列是基于React Native版本号0.44.3写的,相信大家看了本系列前面两篇文章之后,对于React Native的代码应该能看懂一点点了吧.本篇文章将带着大家来认识一下React Native的项目结构.由于之前的项目被我们改动了很多,因此,这里我们重新创建一个项目. 初始化 React Native 工程 自动创建 iOS/Android 工程和对应的JS文件,index.iOS.js,index.android.js 并且通过npm加载package.json里面的依赖库到