某些手机​​上的WebView不显示加载的Html

时间:2011-09-07 07:58:45

标签: android android-webview

我的一个WebView中有一个Activities我要加载Html页面。该页面包含jquery-mobile和一些html。所以我在Activity

中执行以下操作
    mWebView=(WebView) findViewById(R.id.MyWebView);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebViewClient(new WebViewClient(){
           [...]
    });
    mWebView.loadUrl("http://www.mymobilepage.html");

问题是页面被加载并显示在模拟器上和HTC Desire上,但是当我尝试在LG Optimus One上加载它时,没有显示任何内容。事件onPageStartedonPageFinished都会在我的WebViewClient中被触发,但只会显示一个空白页面,我的LogCat中也没有任何错误。

提前致谢。

5 个答案:

答案 0 :(得分:3)

调用onPageFinished时,页面可能无法完全呈现。 documentation州:

  

通知主机应用程序页面已完成加载。仅为主框架调用此方法。调用onPageFinished()时,渲染图片可能尚未更新。要获取新图片的通知,请使用onNewPicture(WebView,Picture)。

但请注意,onNewPicture已被记录为已弃用且已过时。我问一个替代/替代here

答案 1 :(得分:0)

这应该是一个评论,但由于它上面有一些代码我已添加为响应。

尝试在加载页面后立即将默认背景更改为透明和警报,以确保至少正在解释html:

    mWebView = (WebView) this.findViewById(R.id.webview);
    mWebView.setBackgroundColor(0);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
    mWebView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url)
        {
         super.onPageFinished(view, url);
         view.loadUrl("javascript:(function() { alert('hello'); })()");
        } });

加载网页时:

    mWebView.clearView();
    mWebView.loadUrl("http://yourmobilepage.something/");

如果发生了什么事,请告诉我们。

答案 2 :(得分:0)

试试这个:

webView.post(new Runnable() {

        @Override
        public void run() {
            // Your code here...

        }
    });

答案 3 :(得分:0)

您是否在模拟器上检查了不同版本的html / js代码?较新的Android版本有更新版本的WebKit,这可能是问题所在。

我还会检查你是否将LogCat设置为仅显示错误消息,或者调试+信息+警告+错误消息。根据{{​​3}},javascript错误应该显示为Debug消息。

答案 4 :(得分:0)

我有一个类似的问题,我发现调用clearview然后重新加载似乎清除了它 - 如:

mWebView.clearView();
mWebView.loadUrl("http://yourmobilepage.something/");
mWebView.reload();