Android webview JS 互動

❀卜卜ღ?Bruce發表於2019-03-12

在android中使用webview讓JS呼叫android的native功能:

        WebView webView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //註冊一個類到webview供JS使用
        webView.addJavascriptInterface(new WebAppInterface(), "math");
複製程式碼

這個類中的函式需要標註上@JavascriptInterface並且是public

    public class WebAppInterface {
        @JavascriptInterface
        public int sum(int a,int b){
            return a+b;
        }

    }
複製程式碼

js程式碼

   var = math.sum(1,2)
複製程式碼

另外還可以使用shouldOverrideUrlLoading來攔截自定義協議 使用比較簡單 ,就不做說明了。

在android中呼叫JS函式:

// callJS 是js程式碼中的方法
mWebView.loadUrl("javascript:callJS()");
//4.4以後使用,更方便可以直接獲取返回值
webView.evaluateJavascript("javascript:callJS()", new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String value) {

            }
        });
複製程式碼

相關文章