Обновить тот же URL в Webview и когда Refre sh Страница - PullRequest
1 голос
/ 28 апреля 2020

Я создал небольшое android приложение для просмотра адаптивного веб-сайта. Я реализовал pull refre sh, и он работает, однако, когда он вызывает refre sh, он перенаправляет на домашнюю страницу, которую я вставил в LoadUrl. Как обновить sh, перезагрузив тот же 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);
                }
            }
        });
    }
}

Заранее спасибо

1 Ответ

0 голосов
/ 28 апреля 2020

В Swipe Refre sh вызов макета webView.reload ();

swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            webView.reload();
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...