2015-04-08 34 views
0

我正在阅读以下教程: https://www.ibm.com/developerworks/community/blogs/worklight/entry/android_combining_native_and_web_controls_in_cordova_based_applications?lang=en使用Worklight从原生Android代码中启动JavaScript事件侦听器

我试图按照教程,并将其与我的应用程序与ReactJS集成。我创建了一个插件来调用native和javascript代码,我的Cordova插件位于HybirdBridge.java,我的javascript侦听器位于NativeEventListener.js。我的代码可以在这里找到:https://github.com/nguyengiangdev/HybridBridge

我在操作栏中有一个搜索按钮。当我点击搜索按钮时,我尝试调用javascript事件,但它在listenerCallbackContext中抛出空指针异常。

我不知道为什么?谁能帮我这个?

感谢

回答

2

您应该检查MobileFirst平台(原名工作灯)有关此主题的更多信息开发中心。

以下链接有关Android,iOS和Windows Phone的各种教程,介绍如何将本地功能添加到混合应用程序。

https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/adding-native-functionality/

与工作灯6起。2,你可以传递数据来回混合动力和本地之间不通过使用下面的代码创建自己的科尔多瓦插件:

混合动力到纯

发送

var data = { someproperty : 1234 }; 
WL.App.sendActionToNative("doSomething", data); 

混合到原生

收到

WL.getInstance().addActionReceiver(new WLActionReceiver() { 
    void onActionReceived(String action, JSONObject data){ 
     // process received action 
    } 
}); 

原产于混合

发送

JSONObject data = new JSONObject(); 
data.put("someProperty", 12345); 
WL.getInstance().sendActionToJS("doSomething", data); 

接收

WL.App.addActionReceiver ("MyActionReceiverId", function(received) { 
    if (received.action === "doSomething"){ 
     // handle the data received 
    } 
}); 

详细告知 http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.dev.doc/devref/t_sending_actions_native_to_js.html

其他有用的链接:关于这次访问通货膨胀

入门IBM MobileFirst平台:

https://developer.ibm.com/mobilefirstplatform/documentation/getting-started/

IBM MobileFirst平台的建立V7知识中心:

http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/wl_welcome.html

+1

还有一篇关于ReactJS和MFP的博客文章:https://developer.ibm.com/mobilefirstplatform/2015/04/03/react-js-and-mobilefirst-platform-foundation/ –

+0

谢谢@Yoel Nunez。我会尝试。 –