Reputation: 11
I try to call an angular method in java,but it doesn't works.
webview.loadUrl("javascript:hello()");
There are javascript and angular in my html,what should I do can call the angular?
Upvotes: 0
Views: 1098
Reputation: 1084
first call base url in webview
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
webView.setWebChromeClient(new MyWebChromeClient());
webView.loadUrl("url");
Setup Webview client and WebChrome Client. Call your javascript function in Webview client.
private class MyWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:alert(your function)"); // ex. - validation(val1,val2)
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
}
And in WebChrome client you got response from javascript function.
private class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.e("LogTag", message);
result.confirm();
return true;
}
}
Hope this help you.
Upvotes: 1