【问题标题】:Webview Loading - Content finished loading checkWebview 加载 - 内容完成加载检查
【发布时间】:2017-11-10 21:49:02
【问题描述】:

我正在创建一个托管在云服务 (heroku) 上的应用程序,该应用程序每 30 分钟不活动就会休眠。该应用程序在页面加载时显示加载活动。由于服务器每 30 分钟无请求就休眠,因此响应时间可能在 2 到 12 秒之间变化。我试图找到一种方法来了解内容是否完全加载了 CSS 和 JS。 onPageFinished 事件对我不起作用,大多数时候我得到一个空白页。

 public void load(){
    webView = (WebView) findViewById(R.id.web);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.loadUrl(serverURL);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
        public void onPageFinished(WebView view, String url) {
            LoadingActivity la = new LoadingActivity();
            if(la.isNetworkAvailable(MainActivity.this))
                LoadingActivity.current.finish();
            /* This event is called before all content loaded */
        }
    });
    webView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return (event.getAction() == MotionEvent.ACTION_MOVE);
        }
    });
}

【问题讨论】:

    标签: javascript java android node.js heroku


    【解决方案1】:

    你可以尝试在webView上设置WebChrome客户端,它有加载百分比事件,你可以试试听那个。

    【讨论】:

    • WebView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); } });
    • 我仍然有几秒钟的空白页。我检查了 newProgress == 100。
    【解决方案2】:

    我发现最简单的方法就是从 javascript 文档就绪函数中调用 java。

    【讨论】:

      猜你喜欢
      • 2020-03-21
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多