5

首次加载带有 WebView 的页面时,有时图像会丢失或显示不正确。如果我重新加载页面,WebView 总是能完美显示。我知道每个人都会首先认为我在 loadUrl 之后设置了 javascript,但事实并非如此。

在 onCreate 我有:

learnWebView = (WebView)findViewById(R.id.learnWebView);
learnWebView.setWebViewClient(new WebViewClient());
learnWebView.getSettings().setJavaScriptEnabled(true);

然后在 onCreate 之后调用的函数中,我有:

learnWebView.loadUrl("myurl");

是的,我知道每次在 onCreate 之后都会调用带有 loadUrl 的函数。

4

3 回答 3

9

请尝试这个而不是你的方式,这是一个不好的做法:

        learnWebView.post(new Runnable() {

            @Override
            public void run() {
                learnWebView.loadUrl("myurl");
            }
        });

或者这个,以防第一个不起作用:

        learnWebView.postDelayed(new Runnable() {

            @Override
            public void run() {
                learnWebView.loadUrl("myurl");
            }
        }, 500);

希望这可以帮助。

于 2013-08-08T02:56:29.790 回答
1

onViewAttachedToWindowonViewAttachedToWindow您应该仅在触发后才在 javascript 中处理您的逻辑。

于 2013-08-18T15:43:17.847 回答
0

我遇到了同样的问题。不确定它是否与您的情况相同。我花了超过 3 天的时间,实际上发现了另一个 WebView 对象调用 pauseTimers() 以节省一些 CPU 性能的原因,这实际上“暂停了所有 WebViews 的所有布局、解析和 JavaScript 计时器”。

于 2015-08-17T10:18:07.353 回答