在 js 加载完之后,Native才能调到 js 的方法,需要监听 onPageFinish 事件。
一般的 WebView 会有 setWebViewClient 方法来监听加载的事件,但是 CordovaWebView 并没有这个方法。
可以将 CordovaWebView 转化为 SystemWebView
private SystemWebView systemWebView;
protected CordovaWebView webView;
.......
systemWebView = (SystemWebView) webView.getView();
systemWebView.setWebViewClient(new SystemWebViewClient((SystemWebViewEngine) webView.getEngine()) {
@Override
public void onPageFinished(WebView view, String url) {
Log.e("AAA", "page finish");
super.onPageFinished(view, url);
//your work here ,
// excute js
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.e("AAA", "page start");
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// pop
if (url.contains("about:blank")){
pop();
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
});