wumke / react-native-immediate-phone-call

Initiate immediate phone call (without further user interaction) for React Native on iOS and Android.
GNU General Public License v3.0
174 stars 51 forks source link

Nothing happening when calling RNImmediatePhoneCall.immediatePhoneCall() #40

Open Sidharth1999 opened 4 years ago

Sidharth1999 commented 4 years ago

Hi,

I installed and linked the module successfully on iOS, but when I call RNImmediatePhoneCall.immediatePhoneCall() with some phone number, nothing happens.

What could be the reason? Do I need to explicitly check and request permission to make a phone call? Do I need to modify some other native files as well? Is it because I'm using a simulator?

Any help would be appreciated, thanks

jonybar9 commented 4 years ago

Same here ran the following commands on a freshly opened react-native project:

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

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

Then when using the following, nothing happens

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

coloredlambda commented 4 years ago

Confirmed, nothing happens...

wumke commented 4 years ago

Well, do you guys use the latest RN version? Linking has changed for ios and I did not use or test this myself... that might be the issue...

jonybar9 commented 4 years ago

@wumke I was using android, but maybe that's the issue, cause I was using the latest RN I'll try downgrading and will update on the results

Thanks for replying

wumke commented 4 years ago

If you find the solution feel free to send a pull request for the README !

murbanowicz commented 4 years ago

Have you managed to get it working @r44j / @jonybar9 / @Sidharth1999 ? I am trying to make it work with latest RN and no success :(

billel-boudchicha commented 4 years ago

@murbanowicz try wrap the call in try catch block

jonybar9 commented 3 years ago

Ok I think I figured it out, I'll upload later what I did differently @wumke could you contact me at jonybh99@gmail.com about making a pull request?

jonybar9 commented 3 years ago

Ok so @wumke didn't contact me so I'll just post my solution here and if one of you has the time make a pull request

First do react-link Then add the following lines:

In settings.gradle: after rootProject.name = 'YOUR_PROJ_NAME' add the following line: include ':react-native-immediate-phone-call', ':app'

In build.gradle: Inside the dependencies section insert the following line: implementation project(':react-native-immediate-phone-call')

In AndroidManifest.xml: add the following line with all other user-permissions <uses-permission android:name="android.permission.CALL_PHONE" />

In MainActivity.java: inside the class MainActivity add the following override: (include the "@override" for some reason it's not in the same block with the rest of the code) `@Override

public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

    RNImmediatePhoneCallPackage.onRequestPermissionsResult(requestCode, permissions, grantResults); // very important event callback

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

}   
sankaSanjeeva commented 3 years ago

@jonybar9, Thanks. It works. But I think you have missed importing this import com.github.wumke.RNImmediatePhoneCall.RNImmediatePhoneCallPackage; in MainActivity.java

Habinezajanvier commented 2 years ago

Hello @wumke, and @jonybar9, using the same way it's not working as expected

Here are some details on my project

jonybar9 commented 2 years ago

@Habinezajanvier Sorry to hear that. You're right that directing you to the dialer is not the expected behavior, it should make a direct call. Sadly I won't have the time to dive deeper into it anytime soon

wumke commented 1 year ago

Maybe the newer Android versions also blocked direct calling, and forward us to the dailer now (just like Apple did before, see readme). It is possible that there is no longer an option to immediately start a call without an intermediate action/confirmation.

If someone knows a solution, feel free to create a pull request. Also, pull requests for the Readme with exact Android/iOS versions that are reported to work are very welcome!

Naveen-g09 commented 10 months ago

is there a way to do it directly in expo?

thepragmaticidealist commented 10 months ago

I've experienced the same in expo once I built the .apk using eas build. When I tap the button that should start the phone call, nothing happens. @wumke would you know what the issue is and how to fix it?

I followed the readme by adding "permissions": [ "android.permission.CALL_PHONE" ] to my app.json then calling RNImmediatePhoneCall.immediatePhoneCall(phoneNumber) where phoneNumber is the number the user wants to call.

thepragmaticidealist commented 9 months ago

I managed to make this work but had to use React Native CLI instead of expo. After doing some research on the expo icebox and the expo intent launcher package it seems that at the moment expo has no way for us to ask the user for the CALL_PHONE permission. Nevertheless, the API is still supported by Android so, if you install the package through RN CLI, the functionality works.