有没有办法从扩展org.apache.cordova.CordobaPlugin.java的java类中异步调用js函数?

时间:2016-01-04 11:53:14

标签: javascript android angularjs cordova cordova-plugins

我正在开发一个带有扩展org.apache.cordova.CordovaPlugin的类的Ionic应用程序,以帮助完成后台任务。我需要将异步事件通知给应用程序的离子端。我可以注册某种监听器,回调函数或其他机制来从java端调用离子/角度/ javascript代码吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以从原生代码触发webview。

对于Android:

this.appView.loadUrl("javascript:yourmethodname());");

对于iOS:

[webView stringByEvaluatingJavaScriptFromString:@"yourmethodname()"];

yourmethodname应该是您要调用的javascript函数。

对于您的问题,您可以使用setTimeout调用方法,该方法将异步运行。

方法1:

 this.appView.loadUrl("javascript:asyncMethod());");

在JS中:

function asyncMethod(){
   setTimeout(methodtocall(),5000);
}

方法2:

或者您可以直接从Java调用async方法

this.appView.loadUrl("javascript:setTimeout(methodtocall(),5000))");

最好使用方法1,因为您可以稍后在js函数中重复使用它。