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