在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) {
}
});
複製程式碼