@bopzor/react-native-sms-x
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

I fork original package to be able to published a more up-to-date version that works with Expo 48.0.18 and react-native 0.71.0. I also add TypeScript.

react-native-sms-x


SendSMS

A react-native api to send SMS messages. It works only for android. This component used android native api to send sms and response a callback to react-native. This react-native component doesn't link to the mobile default messenger view. It will programmatically send the message to a phone number which is provided as a parameter and will response a callback with the message id and a string indicating message was sent or failure or no service.

usage

import SendSMS from 'react-native-sms-x';
// you can put any number as Id to identify which message being process
SendSMS.send(
  123,
  '+959254687254',
  'Hey.., this is me!\nGood to see you. Have a nice day.',
  (messageId: number, msg: string) => {
    alert(msg);
  }
);

Response msg string will be one of the following:

  • "SMS sent" - for successful message
  • "Generic failure" - for general failure
  • "No service" - for no mobile operator service
  • "Radio off" - for no mobile signal
  • "Null PDU" - for no PDU
Note:
Minimum android version is 4.1 and supported RN >= v0.29.

Installation

npm install react-native-sms-x --save

Android Setup

1.In your android/settings.gradle file, make the following additions:

include ':react-native-sms-x'
project(':react-native-sms-x').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sms-x/android/app')

2.In your android/app/build.gradle file, add the ':react-native-sms-x' project as a compile-time dependency:

...
dependencies {
    ...
    implementation project(':react-native-sms-x')
}

3.In your AndroidManifest.xml file, add a user permission for sending SMS.

<uses-permission android:name="android.permission.SEND_SMS" />

4.Update the MainApplication.java file as follow:

This step might not be needed. Skip if you see error: "Native module SendSMS tried to override Send SMS..."

import com.facebook.react.ReactApplication;
...
import com.someone.sendsms.SendSMSPackage; // <--- add here!


public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    protected boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
          new SendSMSPackage()     // <--- add here!
      );
    }
  };
}

Example

import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Text, View, TouchableOpacity, ToastAndroid } from 'react-native';
import SendSMS from 'react-native-sms-x';

export default class RNSMS extends Component {
  sendSMSFunction() {
    SendSMS.send(
      123,
      '+95912345678',
      'Hey.., this is me!\nGood to see you. Have a nice day.',
      (messageId: number, msg: string) => {
        ToastAndroid.show(msg, ToastAndroid.SHORT);
      }
    );
  }
  render() {
    return (
      <View style={styles.container}>
        <TouchableOpacity style={styles.button} onPress={this.sendSMSFunction.bind(this)}>
          <Text>Send SMS</Text>
        </TouchableOpacity>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  button: {
    padding: 10,
    borderWidth: 0.5,
    borderColor: '#bbb',
    margin: 10,
    alignItems: 'center',
    justifyContent: 'center',
  },
});

AppRegistry.registerComponent('RNSMS', () => RNSMS);

Support on Beerpay

Hey dude! Help me out for a couple of 🍻!

Beerpay Beerpay

Package Sidebar

Install

npm i @bopzor/react-native-sms-x

Weekly Downloads

2

Version

2.0.0

License

Beerware

Unpacked Size

87.1 kB

Total Files

20

Last publish

Collaborators

  • bopzor