刷新页面时,在Webview中重新加载相同的URL。

问题描述 投票:1回答:1

我创建了一个小小的安卓应用来查看一个响应式网站。我已经实现了一个拉动刷新,它的工作原理,但是当拉动刷新时,它重定向到我放在LoadUrl的主页。如何通过重新加载用户正在访问的同一网址来刷新?

我的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个回答
0
投票

在刷新布局中调用webView.reload()。

swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            webView.reload();
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.