简体   繁体   English

如何从插件将数据发送到phonegap / cordova应用程序

[英]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.

相关问题 如何从Cordova应用程序向服务器发送大量数据 - How to to send huge data to server from cordova app 如何从树莓派3发送数据到我的cordova应用程序? - How to send data from raspberry pi 3 to my cordova app? Cordova插件可将数据从本地android活动发送到javascript代码 - Cordova plugin to send data to javascript code from native android activity 如何在cordova / phonegap中配置用于iOS插件从2.x升级到3.0的plugin.xml - How to configure plugin.xml for IOS plugin upgrade from 2.x to 3.0 in cordova / phonegap 在Windows Store JS / HTML / CSS应用程序中使用Phonegap / Cordova插件? - Use Phonegap/Cordova plugin in Windows Store JS/HTML/CSS app? 启动画面在使用Cordova插件的phonegap应用中显示一次 - splash screen displayed once in phonegap app using cordova plugin 如何将 tesseract OCR 与 Cordova/Phonegap 应用程序集成 - How to integrate tesseract OCR with Cordova/Phonegap app 如何在Phonegap / Cordova应用中禁用键盘? - How to disable keyboard in Phonegap/Cordova app? 如何在应用程序浏览器中触发Cordova / PhoneGap - How to trigger Cordova/PhoneGap In App Browser 通过插件访问从Phonegap Cordova中的外部URL加载Webste - Load Webste from external URL in phonegap Cordova with plugin access
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM