【问题标题】:Reload Same URL in Webview An When Refresh Page在 Webview 刷新页面时重新加载相同的 URL
【发布时间】:2020-08-12 01:06:09
【问题描述】:

我创建了一个小的 android 应用来查看响应式网站。我已经实现了拉刷新并且它可以工作,但是当拉刷新时它重定向到我放入 LoadUrl 的主页。如何通过重新加载用户正在访问的相同 url 来刷新?

我的java代码:

public class MainActivity extends AppCompatActivity {
    WebView webView;
    SwipeRefreshLayout swipe;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
        swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                LoadWeb();
            }
        });

        LoadWeb();
    }

    public void LoadWeb()
    {
        webView = (WebView) findViewById(R.id.webview);
        webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setDomStorageEnabled(true);
        //tiga baris dibawah ini agar laman yang dimuat dapat
        //melakukan zoom
        webView.getSettings().setSupportZoom(true);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.getSettings().setDisplayZoomControls(false);

        //baris dibawah ini untuk menambahkan scrollbar didalam webview-nya
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.loadUrl("http://example.com");
        swipe.setRefreshing(true);

        webView.setWebViewClient(new WebViewClient(){
            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                webView.loadUrl("file:///android_asset/error.html");
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                //ketika loading selesai, ikon loading akan hilang
                swipe.setRefreshing(false);
            }
        });
        webView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                if (webView.getProgress()==100){
                    swipe.setRefreshing(false);
                }else {
                    swipe.setRefreshing(true);
                }
            }
        });
    }
}

提前致谢

【问题讨论】:

    标签: java android webview reload swiperefreshlayout


    【解决方案1】:

    在 Swipe Refresh 布局中调用 webView.reload();

    swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                webView.reload();
            }
        });
    

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多