Jingyu Qin
Jingyu Qin

Reputation: 11

How to call an angular method on android webview?

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

Answers (1)

Savan Kachhiya Patel
Savan Kachhiya Patel

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

Related Questions