我正在撰寫使用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 顯示到終端中,但回傳不會以某種方式執行。我是 js 的新手并做出反應。函式和函式呼叫應該怎么樣?
uj5u.com熱心網友回復:
您不是在呼叫該函式而是回傳它,以便回傳一個函式。
只需更改以下內容:
return () => RNImmediatePhoneCall.immediatePhoneCall(getNumber);
到:
RNImmediatePhoneCall.immediatePhoneCall(getNumber);
uj5u.com熱心網友回復:
那一刻 getNumber == ''
所以,我認為RNImmediatePhoneCall.immediatePhoneCall('')什么都不做。
另外,試試這個(當getNumber有值時會起作用)
function makeCall() {
console.log('dialing');
RNImmediatePhoneCall.immediatePhoneCall(getNumber);
}
編輯:
仍然沒有任何反應,我從他們的問題中找到了解決方案
首先,檢查您的手機通話權限: 在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;
在類中, 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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/334694.html
