WebView loadUrl只能工作一次

Ele*_*ena 23 android webview webviewclient

编辑:几年前我参与了这个项目,不幸的是我无法验证在给定的场景中是否有任何答案.

我很难用一个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);
}
Run Code Online (Sandbox Code Playgroud)

我的OnClickListener调用的函数如下:

    public void reLoadUrl() {
        wv.loadUrl(Constants.BLOG_URL);

}
Run Code Online (Sandbox Code Playgroud)

但是,尽管onPageFinished和onPageStarted中的日志显示我的wv.loadUrl正在被调用并且它正在加载正确的url,但webview中的内容本身并没有改变.我已经尝试清除缓存,历史,视图,尝试过不同的WebSettings,试图使用webView.goBack() - 而不是结果.这些想法也不起作用:android中的奇怪的webview goBack问题

有时,reLoadUrl会显示所需的结果 - 但一旦失败,它就再也无法工作了.有什么想法会发生什么?我确实尝试过阅读WebView代码但我找不到任何可以帮助我的东西.

我唯一可以补充的是,我们正在使用一些严重依赖于webViews的广告网络 - 我试图将它们关闭,但我没有删除这些库,所以我不确定它们不是罪魁祸首.

有任何想法吗??

use*_*629 9

使用以下序列中的确切.

   wv.clearCache(true);
   wv.clearView();
   wv.reload();
   wv.loadUrl("about:blank");
   wv.loadData(Constants.BLOG_URL);
Run Code Online (Sandbox Code Playgroud)


Jav*_*bra 8

我花了大约一天时间研究一个使用WebView的应用程序.我在将数据加载到WebView时遇到了一些问题.

我不完全确定这可行,但可能会替换此代码:

public void reLoadUrl() {
    wv.loadUrl(Constants.BLOG_URL);
Run Code Online (Sandbox Code Playgroud)

}

使用此代码:

public void reLoadUrl(){

    wv.clearView();
    wv.loadUrl(Constants.BLOG_URL);
Run Code Online (Sandbox Code Playgroud)

}

也许当您清除WebView时,它将解决问题