[英]How to send data to phonegap/cordova app from plugin
I have wrote a plugin to open an Android native activity page from phonegap and its working fine. 我已经编写了一个插件,可以从phonegap打开Android本机活动页面,并且可以正常工作。 In the native activity page, I have a button.
在本机活动页面中,我有一个按钮。 I would like to call a JavaScript function in my phonegap when that button is clicked.
单击该按钮后,我想在我的phonegap中调用JavaScript函数。
Sounds like you need to embed a WebView in your Activity and place your button inside an HTML loaded into it. 听起来您需要将WebView嵌入到Activity中,然后将按钮放在加载到其中的HTML内。 WebView being a mini browser can handle your javascript function.
作为小型浏览器的WebView可以处理您的JavaScript函数。 Javascript can call native code through interface but native code cannot call javascript, at least not through WebView.
Javascript可以通过接口调用本机代码,但是本机代码不能调用javascript,至少不能通过WebView调用。
onClick of button, you need to make a success cordovaCallback with name of the function you want to call.Then,at the javascript side, you need to get that function name in success block and run your function with eval. 在按钮的onClick上,您需要使用要调用的函数名称进行成功的cordovaCallback。然后,在javascript端,您需要在成功块中获取该函数名称,并使用eval运行您的函数。
Second way is you can create an custom event at javascript side. 第二种方法是您可以在javascript端创建自定义事件。 then send event name with cordovaCallback and fire event at javascript success block.
然后使用cordovaCallback发送事件名称,并在javascript成功块处触发事件。
Official documentation provides the example of sending data from native code to javascript. 官方文档提供了将数据从本机代码发送到javascript 的示例 。
To send data you need to call the success function of the CallbackContext object. 要发送数据,您需要调用CallbackContext对象的成功函数。
callbackContext.success("Native button pressed");
You receive and process that data within the success callback in javascript. 您将在javascript中的成功回调中接收并处理该数据。 Success callback is provided by you as the first parameter when you call cordova.exec method to run your plugin.
当您调用cordova.exec方法运行插件时,您将提供成功回调作为第一个参数。
Different kinds of data can be sent. 可以发送不同种类的数据。
Try this. 尝试这个。
Android : this.appView.loadUrl("javascript:yourmethodname()");
iOS : [webView stringByEvaluatingJavaScriptFromString:@"javascript:yourmethodname()"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.