从android webview触发JavascriptInterface

时间:2019-05-10 07:42:33

标签: javascript java android webview

我遵循了从Webview触发JavascriptInterface的指令,但是在我的情况下并没有触发。

我有一个具有以下内容的QuickTextViewer类:

    public class QuickTextViewer {
        private WebView webView;
    ...
    ...
        public QuickTextViewer(){
           webView = dialog.findViewById(R.id.mywebview);

           webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                 view.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");
                super.onPageFinished(view, url);
            }
        }
@JavascriptInterface
    public void resize(final float height) {
        System.out.print(height);
    }

我还在proguard-rules.pro中添加了以下内容(实际上仅用于测试)

-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}

在我的情况下,触发了onPageFinished,但没有resize()! 有任何建议/帮助吗?

1 个答案:

答案 0 :(得分:5)

现在发现了问题。 只需添加:

webView.getSettings().setJavaScriptEnabled(true);
相关问题