Open Sidharth1999 opened 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'); ...
Confirmed, nothing happens...
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...
@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
If you find the solution feel free to send a pull request for the README !
Have you managed to get it working @r44j / @jonybar9 / @Sidharth1999 ? I am trying to make it work with latest RN and no success :(
@murbanowicz try wrap the call in try catch block
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?
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);
}
@jonybar9, Thanks. It works. But I think you have missed importing this
import com.github.wumke.RNImmediatePhoneCall.RNImmediatePhoneCallPackage;
in MainActivity.java
Hello @wumke, and @jonybar9, using the same way it's not working as expected
Here are some details on my project
0.68.0
^2.0.0
@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
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!
is there a way to do it directly in expo?
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.
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.
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