首先定義一個供前端JS調用的類JavaScriptinterface(名字隨便起):
public class JavaScriptinterface{
Context context;
public JavaScriptinterface(Context myContext) {
context= myContext;
}
//這裏的stringFromJs從前端JS方法獲取
@JavascriptInterface
public void showToast(String stringFromJs) {
Toast(context,stringFromJs, Toast.LENGTH_LONG).show();
}
}
然後再內嵌WebView的類中聲明供JS調用的類並允許JS:
WebView webView=findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("http://xxx.xxx.xxx");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//這裏第一個參數爲供前端調用的類,第二個參數爲前端調用時的類名,自己隨便起
webView.addJavascriptInterface(new JavaScriptinterface(this),"className");
webSettings.setDomStorageEnabled(true);
configWebView(webView);
然後我們在前端的JS中想要調用showToast方法就很簡單了:
className.showToast("這裏寫傳遞給安卓類方法的字符串")