我的一个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上加载它时,没有显示任何内容。事件onPageStarted
和onPageFinished
都会在我的WebViewClient
中被触发,但只会显示一个空白页面,我的LogCat
中也没有任何错误。
提前致谢。
答案 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();