【问题标题】:Android. Reload Webview安卓。重新加载网页视图
【发布时间】:2013-07-20 10:38:49
【问题描述】:

我想使用 window.loadUrl("Javascript:window.location.reload( true )"); 重新加载 web 视图,但无法执行。我可以得到一些建议或替代解决方案吗?我只是想让按钮 reload 重新加载 webview window

谢谢你, Java 下面:

   package com.fortunecaster.android;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.Button;

    public class FcastActivity extends Activity { 

    WebView window;
    Button reload;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fcast);

        window = (WebView)findViewById(R.id.webView1);
        window.getSettings().setJavaScriptEnabled(true);
        window.getSettings().setLoadWithOverviewMode(true);
        window.getSettings().setUseWideViewPort(true);
        window.setWebViewClient(new WebViewClient());
        window.setWebChromeClient(new WebChromeClient());
        window.getSettings().setAppCacheEnabled(true);


        try {
        window.loadUrl("http://www.fortunecaster.com/android-td");
        } catch (Exception e) {
            e.printStackTrace();

            //setup button
            reload = (Button)findViewById(R.id.button1);
            //set onClickListener
            reload.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    window.loadUrl("Javascript:window.location.reload( true )");

                    // TODO Auto-generated method stub

                }
            });
      }
}

【问题讨论】:

  • 在javascript 中尝试小写j。
  • 谢谢。你是对的。该行中的 j 应该是小写的。不幸的是,按钮仍然没有重新加载。

标签: java android


【解决方案1】:

只需使用这个 reload() 方法,

webview.reload();

【讨论】:

    【解决方案2】:

    也许这对你来说很有趣:

    他们建议再次调用 loadURL()。

    【讨论】:

    • 这真的会刷新,还是会从缓存中抓取?
    • 我猜这取决于缓存模式,但请继续@我发布的链接。 :)
    • Geobits,我希望它能够真正刷新/重新加载 webview html 目标。 Jan1337z,感谢您的链接。这是我的实际线程
    • Jan1337z– 谢谢。感谢您的提议,但在代码中进行了一些消除过程后,我发现问题出在我在 loadURL 中设置的异常。一旦我删除了异常,所有的重新加载方法都起作用了。我选择了 window.loadUrl("javascript:window.location.reload(true)");因为我的 webview 的内容具有随机图像加载,并且此方法会导致真正的 webview 重新加载而没有缓存问题。
    • 试试 mWebView.reload(); !!
    【解决方案3】:
    @Override
                public void onClick(View v) {
                    window.loadUrl(window.GetUrl());
    
                    // TODO Auto-generated method stub
    
                }
            });
    

    【讨论】:

      【解决方案4】:

      制作一个函数来调用webView,并重用它。

      此外,您需要使用 webView.reload();在编码之前刷新(使其为空)webView 页面。

      protected void setWebView(){
         window = (WebView)findViewById(R.id.webView1);
         window.reload(); // this make empty window, 
                          // so if you call setWebView() again, 
                          // you might rebuild new webview from here.
         window.getSettings().setJavaScriptEnabled(true);
         window.getSettings().setLoadWithOverviewMode(true);
         window.getSettings().setUseWideViewPort(true);
         window.setWebViewClient(new WebViewClient());
         window.setWebChromeClient(new WebChromeClient());
         window.getSettings().setAppCacheEnabled(true);
         window.loadUrl("http://www.fortunecaster.com/android-td");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-18
        • 2015-02-04
        • 2011-07-22
        • 1970-01-01
        相关资源
        最近更新 更多