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:
(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",
...
}
LSApplicationQueriesSchemes
in info.plist
after </dict>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>tel</string>
<string>telprompt</string>
</array>
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);
}
...
}
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.
import RNImmediatePhoneCall from 'react-native-immediate-phone-call';
...
RNImmediatePhoneCall.immediatePhoneCall('0123456789');
...
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.