Как прослушать WebView, заканчивающий загрузку URL?

^(\d{3}|\d{6})$

У вас должен быть какой-то терминатор, иначе \d{3} будет соответствовать 1234. Вот почему я положил ^ и $ выше. Один из вариантов заключается в использовании поисковых запросов:

(?

, чтобы убедиться, что ему не предшествует цифра (или в этом случае). Больше в Утверждения нулевой ширины Lookahead и Lookbehind .

412
задан Sufian 3 August 2016 в 07:55
поделиться

4 ответа

Расширить WebViewClient и вызовите onPageFinished () следующим образом:

mWebView.setWebViewClient(new WebViewClient() {

   public void onPageFinished(WebView view, String url) {
        // do your stuff here
    }
});
684
ответ дан 22 November 2019 в 23:22
поделиться

Используйте setWebViewClient () и переопределите onPageFinished ()

7
ответ дан 22 November 2019 в 23:22
поделиться

Если вы хотите отображать индикатор выполнения, вам нужно следить за событием изменения хода выполнения, а не только за завершением страницы:

mWebView.setWebChromeClient(new WebChromeClient(){

            @Override
            public void onProgressChanged(WebView view, int newProgress) {

                //change your progress bar
            }


        });

Кстати, если вы хотите отображать только Indeterminate ProgressBar, переопределяя метод onPageFinished достаточно

17
ответ дан 22 November 2019 в 23:22
поделиться

Отследить состояние прогресса можно с помощью метода getProgress в классе webview.

Инициализируйте статус прогресса

private int mProgressStatus = 0;

затем AsyncTask для загрузки следующим образом:

private class Task_News_ArticleView extends AsyncTask<Void, Void, Void> {
    private final ProgressDialog dialog = new ProgressDialog(
            your_class.this);

    // can use UI thread here
    protected void onPreExecute() {
        this.dialog.setMessage("Loading...");
        this.dialog.setCancelable(false);
        this.dialog.show();
    }

    @Override
    protected Void doInBackground(Void... params) {
        try {
            while (mProgressStatus < 100) {
                mProgressStatus = webview.getProgress();

            }
        } catch (Exception e) {

        }
        return null;

    }

    protected void onPostExecute(Void result) {
        if (this.dialog.isShowing()) {
            this.dialog.dismiss();
        }
    }
}
5
ответ дан 22 November 2019 в 23:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: