charles
charles

Reputation: 63

react native share in a single application

In my react-native app, I want to share a text message with a specific application, e.g whatsapp or texting application without having to first land on the dialog with all the social applications.

For instance if I press the share button and whatsapp is called directly.

I tried using react-native-share but it seems to not be working anymore.

Upvotes: 4

Views: 3376

Answers (2)

You can use Linking, which gives you a general interface to interact with both incoming and outgoing app links.

For example:

import React, { Component } from 'react';
import { Linking, Button } from 'react-native';

export class App extends Component {
  render() {
    return <Button
              onPress={() => {
                let url = 'whatsapp://send?text=Hola Mundo';
                Linking.openURL(url).then((data) => {
                  console.log('open whatsapp')
                }).catch(() => {
                  console.log('App not installed')
                });
              }}
              title="Whatsapp"
              color="#4FBE3C"/>;
  }
}

Upvotes: 6

Yury
Yury

Reputation: 161

For Android, the React Native Share module uses the default ACTION_SEND android intent:

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);

In order to have a different behavior, you need either write our own RN plugin that would talk to the app you want it to (if such feature is available) or find a similar plugin on npm.

I assume your plugin should do something like this:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);
sendIntent.setPackage("com.whatsapp");

Upvotes: 0

Related Questions