0
我正在開發一個類擴展org.apache.cordova.CordovaPlugin幫助後臺任務的Ionic應用程序。我需要通知我的應用程序離子方面的異步事件。我可以註冊某種監聽器,回調函數或其他機制從java端調用ionic/angular/javascript代碼嗎?有沒有辦法從java類擴展org.apache.cordova.CordobaPlugin.java異步調用js函數?
我正在開發一個類擴展org.apache.cordova.CordovaPlugin幫助後臺任務的Ionic應用程序。我需要通知我的應用程序離子方面的異步事件。我可以註冊某種監聽器,回調函數或其他機制從java端調用ionic/angular/javascript代碼嗎?有沒有辦法從java類擴展org.apache.cordova.CordobaPlugin.java異步調用js函數?
是的,你可以從原生代碼觸發webview。
對於安卓
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
致電asyncmethodthis.appView.loadUrl("javascript:setTimeout(methodtocall(),5000))");
最好使用方法1,因爲您可以稍後在js函數中重用它。