1
當我點擊本地UI中的一個按鈕(可能來自一個片段容器)時,我想從JavaScript調用一個方法,讓我們把它稱爲'jsMethod'或其他。但是,我從來沒有處理過這種情況。如何在Android平臺上的react-native(0.47)中調用javascript方法?
我在網站上查找Facebook文檔中的一些相關代碼,但到目前爲止找不到問題的關鍵。任何人都給我一些建議?
當我點擊本地UI中的一個按鈕(可能來自一個片段容器)時,我想從JavaScript調用一個方法,讓我們把它稱爲'jsMethod'或其他。但是,我從來沒有處理過這種情況。如何在Android平臺上的react-native(0.47)中調用javascript方法?
我在網站上查找Facebook文檔中的一些相關代碼,但到目前爲止找不到問題的關鍵。任何人都給我一些建議?
從Java調用JavaScript方法,做這樣的事情:
ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager();
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
CatalystInstance catalystInstance = reactContext.getCatalystInstance();
WritableNativeArray params = new WritableNativeArray();
params.pushString("Parameter 1");
params.pushString("Parameter 3");
catalystInstance.callFunction("JavaScriptVisibleToJava", "nameOfJsMethod", params);
要調用JavaScript方法必須被定義,併爲Java可見:
import BatchedBridge from "react-native/Libraries/BatchedBridge/BatchedBridge";
export class ExposedToJava {
nameOfJsMethod(message) {
alert(message);
}
}
const exposedToJava = new ExposedToJava();
BatchedBridge.registerCallableModule("JavaScriptVisibleToJava", exposedToJava);
This sample on Github包括工作演示。
查看[將事件發送到JavaScript](https://facebook.github.io/react-native/docs/native-modules-android.html#sending-events-to-javascript)&[Events](https ://facebook.github.io/react-native/docs/native-components-android.html#events) – ufxmeng