• Stars
    star
    152
  • Rank 244,685 (Top 5 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Initiate immediate phone call (without further user interaction) for React Native on iOS and Android.

react-native-immediate-phone-call

Initiate immediate phone call (without further user interaction) for React Native on iOS and Android.

The difference with react-native-phone-call and react-native-communications is that with this library no additional user input is required for Android and the call starts instantly (Apple always asks confirmation since the last iOs updates...).

NOTICE:

  • for React Native < 0.47 use react-native-immediate-phone-call <1.x.x
  • for React Native 0.47 - 0.59 use react-native-immediate-phone-call >=1.x.x
  • for React Native >= 0.60 use react-native-immediate-phone-call >=2.x.x

Setup

(NOTICE THAT INSTALLATION STEPS FOR NEWER REACT NATIVE VERSIONS MAY BE DIFFERENT...)

For expo managed projects skip to expo setup guide

Fast and easy:

npm install react-native-immediate-phone-call --save

Add to your project automatically

react-native link react-native-immediate-phone-call

Or manual: add the latest version as dependency to your package.json.

{
  "name": "YourProject",
  ...
  },
  "dependencies": {
    ...
    "react-native-immediate-phone-call": "^1.0.0",
    ...
  }

iOS

  • Add RNImmediatePhoneCall.xcoderproj into your project in the Libraries folder.
  • Add the .a file on the General tab of your target under Linked Frameworks And Libraries.
  • Add the .a file on the Build Phases tab of your target under Link Binary With Libraries.
  • For iOS 9.0 and above it's mandatory to have LSApplicationQueriesSchemes in info.plist after </dict>
  <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>tel</string>
        <string>telprompt</string>
    </array>

Android

  • In the AndroidManifest.xml file of your android studio project add:

    <uses-permission android:name="android.permission.CALL_PHONE" />
  • In the settings.gradle

      include ':react-native-immediate-phone-call', ':app'
      project(':react-native-immediate-phone-call').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-immediate-phone-call/android')
  • In the app/build.gradle

      implementation project(':react-native-immediate-phone-call')
  • In MainApplication.java

      import com.github.wumke.RNImmediatePhoneCall.RNImmediatePhoneCallPackage;
      ...
      @Override
      protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
          ...
          new RNImmediatePhoneCallPackage(),
          ...
        );
      }
      ...
  • MainActivity.java

      import com.github.wumke.RNImmediatePhoneCall.RNImmediatePhoneCallPackage;  // <--- import
      ...
      public class MainActivity extends ReactActivity {
        ...
        @Override
        public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
            RNImmediatePhoneCallPackage.onRequestPermissionsResult(requestCode, permissions, grantResults); // very important event callback
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
        ...
      }

Setup in Expo

Install package

npm install react-native-immediate-phone-call --save

In the app.json file of your expo project add:

...
       "permissions": [
        ...
        "android.permission.CALL_PHONE"   // <--- add to your project permissions
      ],
...

Note: React-native-immediate-phone-call won't work in expo go and expo dev-client app, you'll need to build an actual apk to test it.

Usage

import RNImmediatePhoneCall from 'react-native-immediate-phone-call';
...
RNImmediatePhoneCall.immediatePhoneCall('0123456789');
...

Versioning

This project uses semantic versioning: MAJOR.MINOR.PATCH. This means that releases within the same MAJOR version are always backwards compatible. For more info see semver.org.