【发布时间】:2015-04-15 05:10:11
【问题描述】:
我已经编写了一个插件来从 phonegap 打开一个 Android 原生活动页面并且它工作正常。在本机活动页面中,我有一个按钮。单击该按钮时,我想在我的 phonegap 中调用 JavaScript 函数。
【问题讨论】:
标签: javascript android cordova android-activity phonegap-plugins
我已经编写了一个插件来从 phonegap 打开一个 Android 原生活动页面并且它工作正常。在本机活动页面中,我有一个按钮。单击该按钮时,我想在我的 phonegap 中调用 JavaScript 函数。
【问题讨论】:
标签: javascript android cordova android-activity phonegap-plugins
听起来您需要embed a WebView in your Activity 并将您的按钮放在加载到其中的 HTML 中。 WebView 作为一个迷你浏览器可以处理你的 javascript 函数。 Javascript 可以通过接口调用原生代码,但原生代码不能调用 javascript,至少不能通过 WebView。
【讨论】:
点击按钮,您需要使用您要调用的函数的名称成功进行cordovaCallback。然后,在javascript端,您需要在成功块中获取该函数名称并使用eval运行您的函数。
第二种方法是您可以在 javascript 端创建自定义事件。然后发送带有cordovaCallback的事件名称并在javascript成功块触发事件。
【讨论】:
Official documentation provides the example 将数据从本机代码发送到 javascript。
发送数据需要调用CallbackContext对象的success函数。
callbackContext.success("Native button pressed");
您在 javascript 的成功回调中接收并处理该数据。 当您调用 cordova.exec 方法运行插件时,您会提供成功回调作为第一个参数。
可以发送不同种类的数据。
【讨论】:
试试这个。
Android : this.appView.loadUrl("javascript:yourmethodname()");
iOS : [webView stringByEvaluatingJavaScriptFromString:@"javascript:yourmethodname()"];
【讨论】: