【问题标题】:Android WebView Rendering FinishedAndroid WebView 渲染完成
【发布时间】:2015-07-16 17:00:04
【问题描述】:

我正在使用 android 开发和 webviews。 我想在渲染完成后显示 webview,所以我在 webview 的顶部看到了一个 ImageView。如何仅在呈现 webview 后隐藏 ImageView?

【问题讨论】:

    标签: java android webview rendering


    【解决方案1】:

    你可以试试这样的:

    webView.setWebViewClient(new WebViewClient() {
      public void onPageFinished(WebView view, String url) {
        // Page is loaded!
      }
    }
    

    【讨论】:

    • 谢谢。这是我尝试的第一种方法,但是加载的页面是在 webview 中加载内容时调用的,而不是在渲染时调用
    【解决方案2】:

    您必须在 webview 中启用 javascript,然后将 javascript 接口传递给 webview,以便您可以与 javascript 的 android 代码交互。

    在设置 webview 时添加这些以启用 javascript 和 javascript 界面

     webView.getSettings().setJavaScriptEnabled(true);
      webView.addJavascriptInterface(new WebAppInterface(this),
                       "Android");
    
    public class WebAppInterface {
        Context mContext;
        /** Instantiate the interface and set the context */
        WebAppInterface(Context c) {
            mContext = c;
        }
    
        /** Hide image view */
        @JavascriptInterface
        public void hideImageView() {
            imageView.setVisibilty(View.GONE);
         }  
        }
    

    在javascript调用中

    document.addEventListener('DOMContentLoaded', function() {
       setTimeout(function () 
     { Android.hideImageView(); }, 3000);
    }, false);
    

    注意:您需要在 webview 中加载的内容中包含此 javascript 代码

    【讨论】:

    • 非常感谢,我没想到这一点。我要试一试,但它应该可以正常工作。
    • 抱歉,这并不能解决问题。我需要一些东西来告诉我 webview 何时完成绘制。
    • 只需尝试使用上述答案中的新 javascript 代码
    猜你喜欢
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2023-03-17
    相关资源
    最近更新 更多