【问题标题】:triggering JavascriptInterface from a android webview从 android webview 触发 JavascriptInterface
【发布时间】:2019-09-28 02:06:16
【问题描述】:

我按照指示从 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() 不是! 有什么建议/帮助吗?

【问题讨论】:

  • 发现问题:不得不添加webView.getSettings().setJavaScriptEnabled(true);

标签: javascript java android webview


【解决方案1】:

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

webView.getSettings().setJavaScriptEnabled(true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多