Example to Send WhatsApp Message from React Native App

Introduction

This is an Example to Send WhatsApp Message from React Native App. This post can be very helpful for you if you want to add the sharing facility into your app if you have seen our last post on React Native Share API to Share TextInput message you can see that it was providing all the possible solution available in the device to share the input text but what if you just want to share the content on WhatsApp? So for that, we have made this post to share the content on WhatsApp.

We are going to use deep linking property and will be going to open the WhatsApp using Linking component provided by React Native core library. You can also trigger Whatsapp Web in the browser to open WhatsApp in the Webview if the user has no WhatsApp installed.

You can also see:

  1. React Native Share API to Share TextInput message
  2. Share Facebook Post with URL from React Native App
  3. Tweet on Twitter with URL from React Native App
  4. Send Text SMS on Button Click in React Native

To Send WhatsApp Message from React Native App

Linking.openURL('whatsapp://send?text=' + this.state.msg + '&phone=91' + this.state.mobile_no);

In this example, we are taking the mobile number and message as an input from the user and then we will send the WhatsApp message. So let’s get started.

To Make a React Native App

Getting started with React Native will help you to know more about the way you can make a React Native project. We are going to use react-native init to make our React Native App. Assuming that you have node installed, you can use npm to install the react-native-cli command line utility. Open the terminal and go to the workspace and run

npm install -g react-native-cli

Run the following commands to create a new React Native project

react-native init ProjectName

If you want to start a new project with a specific React Native version, you can use the --version argument:

react-native init ProjectName --version X.XX.X
react-native init ProjectName --version react-native@next

This will make a project structure with an index file named App.js in your project directory.

Code

Open App.js in any code editor and replace the code with the following code.

App.js

// This is an Example to Send WhatsApp Message from React Native App
import React, { Component } from 'react';
import { View, StyleSheet, Text, Linking, TextInput, Button } from 'react-native';

export default class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      mobile_no: '',
      msg: '',
    };
  }
  sendOnWhatsApp=() => {
    let msg = this.state.msg;
    let mobile = this.state.mobile_no;
    if(mobile){
      if(msg){
        let url = 'whatsapp://send?text=' + this.state.msg + '&phone=91' + this.state.mobile_no;
        Linking.openURL(url).then((data) => {
          console.log('WhatsApp Opened');
        }).catch(() => {
          alert('Make sure Whatsapp installed on your device');
        });
      }else{
        alert('Please insert message to send');
      }
    }else{
      alert('Please insert mobile no');
    }
  }
  render() {
    return (
      <View style={styles.container}>
        <Text style={{textAlign: 'center', fontSize: 20, paddingVertical: 30}}>
          Example to Send WhatsApp Message from React Native App
        </Text>
        <TextInput
          value={this.state.mobile_no}
          onChangeText={mobile_no => this.setState({ mobile_no })}
          placeholder={'Enter Mobile'}
          style={styles.input}
          keyboardType={'numeric'}
        />
        <TextInput
          value={this.state.msg}
          onChangeText={msg => this.setState({ msg })}
          placeholder={'Enter message'}
          style={styles.input}
        />
        <View style={{marginTop:20}}>
          <Button
            onPress={this.sendOnWhatsApp}
            title= 'Send WhatsApp Message'
            />
        </View>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    marginTop:50,
    padding: 30,
    backgroundColor: '#ffffff',
  },
 input: {
   width:250,
   height: 44,
   padding: 10,
   margin: 20,
   backgroundColor: '#D3D3D3',
 },
});

To Run the React Native App

Open the terminal again and jump into your project using.
cd ProjectName
To run the project on an Android Virtual Device or on real debugging device
react-native run-android
or on the iOS Simulator by running
react-native run-ios (macOS only).

FAQ: How can I send WhatsApp messages directly from my react native application without opening the WhatsApp?
Ans: Sorry but this is not possible with this example. WhatsApp does not provide any plugin or API for that I have used a deep-linking property to send the WhatsApp message in this example.

Output Screenshots

Image   Image   Image

Output in Online Emulator

This is how you can Send WhatsApp Message from React Native App. If you have any doubt or you want to share something about the topic you can comment below or contact us here. There will be more posts coming soon. Stay tuned!

Hope you liked it. 🙂


Related Posts

12 thoughts on “Example to Send WhatsApp Message from React Native App”

  1. One of the developer told me that commercial use of whatapp API is not very straight forward and it involves lots of certification. On the opposite side your example look fairly easy to implement. Can you please suggest if any app is allowed to use whatsapp API or there are some restrictions around it.

    Reply
    • If you are talking about the WhatsApp API then yes it needs some permission and not legal without permission but in this eaxmple, we have simply used the concept of deep linking. Indirectly we are opening the web.whatsapp in the browser but due to deep-linking property in WhatsApp, it is opening it in the application. It is completely fair to use this as this feature is used by many bloggers or the websites to make the share option. Don’t worry just go for it. 🙂

      Reply
    • Hello, I tried to find some good posts related to that but nothing is worthy on the internet using PHP and MySQL and personally I won’t recommend you go for the PHP backend in case of the chat application as it needs continuous polling to the server which will drain the battery and waste the resources instead go for the node or another backend where you can find socket io as a better option for the chat.

      Reply
  2. Nice post Snehal. Thanks.
    Pls answer me this:
    I want users to share messages from my react web app to whatsapp contacts on their phones.
    Then I need to know how many contacts each user has shared my message with.

    How would I go about that?
    Thanks.

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.