react-native-immediate-phone-调用不工作
react-native-immediate-phone-call not working
我正在编写使用 react-native-immediate-phone-call
的应用程序,通过按下 Pressable 组件,我需要从该模块调用函数。
import RNImmediatePhoneCall from 'react-native-immediate-phone-call';
export default function App() {
const [getNumber, setNumber] = useState('');
function makeCall() {
console.log('dialing');
return () => RNImmediatePhoneCall.immediatePhoneCall(getNumber);
}
...
return (
...
<Pressable onPress={()=>makeCall()}>
<Image source={require('./assets/phone-call.png')}/>
</Pressable>
...
);
}
控制台日志显示在带有 Metro Bunler 的终端中,但 return 无法以某种方式执行。我是 js 的新手并做出反应。
函数和函数调用应该如何?
您不是在调用该函数,而是返回它,因此您得到了一个函数。
只需更改以下内容:
return () => RNImmediatePhoneCall.immediatePhoneCall(getNumber);
至:
RNImmediatePhoneCall.immediatePhoneCall(getNumber);
那一刻getNumber == ''
所以,我认为RNImmediatePhoneCall.immediatePhoneCall('')
什么都不做。
另外,试试这个(当 getNumber
有值时会起作用)
function makeCall() {
console.log('dialing');
RNImmediatePhoneCall.immediatePhoneCall(getNumber);
}
编辑:
仍然没有任何反应,我从他们的问题中找到了解决方案
首先,检查您的 phone 通话权限:在 AndroidManifest.xml
然后添加以下行
<uses-permission android:name="android.permission.CALL_PHONE" />
如果还是不行,请按照步骤操作
在settings.gradle
在 rootProject.name = 'YOUR_PROJ_NAME'
之后
添加以下行
include ':react-native-immediate-phone-call', ':app'
在build.gradle
在依赖项部分插入以下行
implementation project(':react-native-immediate-phone-call')
在AndroidManifest.xml
添加以下所有其他用户权限的行
<uses-permission android:name="android.permission.CALL_PHONE" />
在MainActivity.java中导入这个
import com.github.wumke.RNImmediatePhoneCall.RNImmediatePhoneCallPackage;
在 class 中,MainActivity 添加以下覆盖
(由于某些原因,包括“@override”,它与其余代码不在同一个块中)
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
RNImmediatePhoneCallPackage.onRequestPermissionsResult(requestCode, permissions, grantResults); // very important event callback
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
我正在编写使用 react-native-immediate-phone-call
的应用程序,通过按下 Pressable 组件,我需要从该模块调用函数。
import RNImmediatePhoneCall from 'react-native-immediate-phone-call';
export default function App() {
const [getNumber, setNumber] = useState('');
function makeCall() {
console.log('dialing');
return () => RNImmediatePhoneCall.immediatePhoneCall(getNumber);
}
...
return (
...
<Pressable onPress={()=>makeCall()}>
<Image source={require('./assets/phone-call.png')}/>
</Pressable>
...
);
}
控制台日志显示在带有 Metro Bunler 的终端中,但 return 无法以某种方式执行。我是 js 的新手并做出反应。 函数和函数调用应该如何?
您不是在调用该函数,而是返回它,因此您得到了一个函数。
只需更改以下内容:
return () => RNImmediatePhoneCall.immediatePhoneCall(getNumber);
至:
RNImmediatePhoneCall.immediatePhoneCall(getNumber);
那一刻getNumber == ''
所以,我认为RNImmediatePhoneCall.immediatePhoneCall('')
什么都不做。
另外,试试这个(当 getNumber
有值时会起作用)
function makeCall() {
console.log('dialing');
RNImmediatePhoneCall.immediatePhoneCall(getNumber);
}
编辑:
仍然没有任何反应,我从他们的问题中找到了解决方案
首先,检查您的 phone 通话权限:在 AndroidManifest.xml 然后添加以下行
<uses-permission android:name="android.permission.CALL_PHONE" />
如果还是不行,请按照步骤操作
在settings.gradle
在 rootProject.name = 'YOUR_PROJ_NAME'
之后
添加以下行
include ':react-native-immediate-phone-call', ':app'
在build.gradle 在依赖项部分插入以下行
implementation project(':react-native-immediate-phone-call')
在AndroidManifest.xml 添加以下所有其他用户权限的行
<uses-permission android:name="android.permission.CALL_PHONE" />
在MainActivity.java中导入这个
import com.github.wumke.RNImmediatePhoneCall.RNImmediatePhoneCallPackage;
在 class 中,MainActivity 添加以下覆盖 (由于某些原因,包括“@override”,它与其余代码不在同一个块中)
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
RNImmediatePhoneCallPackage.onRequestPermissionsResult(requestCode, permissions, grantResults); // very important event callback
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}