# react-native-receive-data

> ## Note Only Android supported for now, we will try to support ios too very soon.

Latest version **1.0.18** (published 2018-07-13) · 0 weekly downloads

## Install

```sh
npm install react-native-receive-data
pnpm add react-native-receive-data
yarn add react-native-receive-data
bun add react-native-receive-data
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.18 |
| Published | 2018-07-13 |
| First published | 2018-06-29 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 45.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4 |
| Maintainers | diwakarshukla14 |
| Keywords | react-native |

## Links

- npm: https://www.npmjs.com/package/react-native-receive-data
- Repository: https://github.com/diwakarshuklar/ReceiveData
- npm.io page: https://npm.io/package/react-native-receive-data

## Recent versions

- 1.0.18 (latest) — 2018-07-13
- 1.0.17 — 2018-07-13
- 1.0.16 — 2018-07-04
- 1.0.15 — 2018-07-04
- 1.0.14 — 2018-07-03
- 1.0.13 — 2018-07-03
- 1.0.12 — 2018-07-03
- 1.0.11 — 2018-07-03
- 1.0.10 — 2018-07-03
- 1.0.9 — 2018-07-03
- 1.0.8 — 2018-07-03
- 1.0.7 — 2018-07-03
- 1.0.6 — 2018-07-03
- 1.0.5 — 2018-07-03
- 1.0.4 — 2018-07-02
- … 4 more at https://npm.io/package/react-native-receive-data/versions

## README

# react-native-receive-data

## Note
Only Android supported for now, we will try to support ios too very soon.

## Description
It returns uri of shared file. You can use that uri to show the content or use the content (Using https://github.com/wkh237/react-native-fetch-blob)

## Getting started

`$ npm install react-native-receive-data --save`

### Mostly automatic installation

`$ react-native link react-native-receive-data`

### Manual installation

<!-- 
#### iOS

1. In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`
2. Go to `node_modules` ➜ `react-native-receive-data` and add `RNReceiveData.xcodeproj`
3. In XCode, in the project navigator, select your project. Add `libRNReceiveData.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`
4. Run your project (`Cmd+R`) -->

#### Android

1. Open up `android/app/src/main/java/[...]/MainActivity.java`
  - Add `import com.reactlibrary.RNReceiveDataPackage;` to the imports at the top of the file
  - Add `new RNReceiveDataPackage()` to the list returned by the `getPackages()` method
2. Append the following lines to `android/settings.gradle`:
  	```
  	include ':react-native-receive-data'
  	project(':react-native-receive-data').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-receive-data/android')
  	```
3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:
  	```
      compile project(':react-native-receive-data')
  	```

## Setup for new Activity to open (Required)

1. create a file `/android/app/src/main/java/com/[project_name]/receive/ReceiveActivity.java` with content as bellow

  ```java
  package com.demo.receive; // Your package name here

  import com.facebook.react.ReactActivity;

  public class ReceiveActivity extends ReactActivity {
      @Override
      protected String getMainComponentName() {
          return "receive"; // this will be Component name to register using React Native
      }
  }
  ```

2. create a file `/android/app/src/main/java/com/[project_name]/receive/ReceiveApplication` with content as bellow

  ```java
  package com.demo.receive; // Your package Name here

  import com.demo.BuildConfig; // Take from Your Package
  import com.reactlibrary.RNReceiveDataPackage;

  import android.app.Application;

  import com.facebook.react.shell.MainReactPackage;
  import com.facebook.react.ReactNativeHost;
  import com.facebook.react.ReactApplication;
  import com.facebook.react.ReactPackage;

  import java.util.Arrays;
  import java.util.List;


  public class ReceiveApplication extends Application implements ReactApplication {
    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
      @Override
      public boolean getUseDeveloperSupport() {
        return BuildConfig.DEBUG;

      }

      @Override
      protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new RNReceiveDataPackage()
        );
      }
    };

    @Override
    public ReactNativeHost getReactNativeHost() {
        return mReactNativeHost;
    }
  }
  ```

3. Open AndroidManifest.xml and update 
    ```xml
    <application>
    ...
    <activity android:name=".receive.ReceiveActivity" >
          <intent-filter>
              <action android:name="android.intent.action.SEND" />
              <category android:name="android.intent.category.DEFAULT" />
              <data android:mimeType="application/pdf" />
          </intent-filter>
      </activity>
    </application>
    ```

## Usage

index.js

```javascript
  import { AppRegistry } from 'react-native';
  import App from './App';
  import ReceiveData from './Receive';

  AppRegistry.registerComponent('demo', () => App);
  AppRegistry.registerComponent('receive', ()=> ReceiveData);
```

Recive.js

```javascript
import React, { Component } from 'react';
import {
  Text,
  View
} from 'react-native';
import RNReceive from 'react-native-receive-data';

type Props = {};
export default class App extends Component<Props> {

    state = { type : '', uri: '' };

    async componentDidMount() {
        const {type, uri} = await RNReceive.data();
        this.setState({type, uri});
    }

  render() {
      const { type, uri } = this.state;
    return (
      <View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
        <Text>{type}</Text>
        <Text>{uri}</Text>
      </View>
    );
  }
}
```

---
_Source: https://npm.io/package/react-native-receive-data · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
