有什么方法可以从扩展org.apache.cordova.CordobaPlugin.java的java类异步调用js函

Is there any way to call a js function asyncronously from a java class extending org.apache.cordova.CordobaPlugin.java?

本文关键字:java CordobaPlugin 异步 js 调用 cordova apache 方法 什么 org 扩展      更新时间:2023-09-26

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

是的,您可以从本机代码触发webview。

对于Android:

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

适用于iOS:

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

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

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

方法1:

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

在JS中:

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

方法2:

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

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

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