安卓內嵌WebView並通過JS直接調用安卓類方法

首先定義一個供前端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("這裏寫傳遞給安卓類方法的字符串")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章