编辑:我几年前参与过这个项目,不幸的是我无法验证任何答案是否在给定的场景中有效。
我很难使用一个应该显示我们博客的 WebView。初始化后,它工作得很好。用户可以导航到 WebView 中的不同链接。回到博客,WebView 外面有一个按钮,它应该再次加载主博客站点。
问题是,在第二次调用 loadUrl 之后没有加载任何内容。这是我的代码:
private WebView wv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.blog);
wv = (WebView) findViewById(R.id.blog_webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon {
MyLog.logDump("onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
MyLog.logDump("onPageFinished: " + url);
}
});
wv.loadUrl(Constants.BLOG_URL);
}
我的 OnClickListener 调用的函数如下:
public void reLoadUrl() {
wv.loadUrl(Constants.BLOG_URL);
}
但是,尽管 onPageFinished 和 onPageStarted 中的日志显示我的 wv.loadUrl 正在被调用并且它正在加载正确的 url,但 webview 本身的内容并没有改变。我尝试清除缓存、历史记录、视图,尝试不同的 WebSettings,尝试使用 webView.goBack() - 没有结果。这些想法也行不通:Strange webview goBack issue in android
有时,reLoadUrl 会显示所需的结果 - 但一旦失败,它就不能再工作了。任何想法可能会发生什么?我确实尝试阅读 WebView 代码,但找不到任何可以帮助我的东西。
我唯一可以补充的是,我们正在使用一些严重依赖 webViews 的广告网络——我试图将其关闭,但我没有删除这些库,所以我不确定它们是否是罪魁祸首。
有任何想法吗??