Android: заставка и веб-просмотр

1

Я пытаюсь в течение нескольких дней, чтобы получить решение, чтобы показать заставку при загрузке webview.

Я посмотрел вокруг, и есть несколько подходов: - активируйте активность, чтобы показать заставку, подождите несколько секунд, а затем запустите активность веб-просмотра → это не решение, так как вся загрузка снова выполняется после закрытия заставки

  • второй подход выглядит примерно так:

       myWebView = (WebView) findViewById(R.id.webview);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    myWebView.setWebViewClient(new WebViewClient() {
       public void onPageFinished(WebView view, String url) {
           findViewById(R.id.webview).setVisibility(View.VISIBLE);
    
           //hide loading image
           findViewById(R.id.imageView1).setVisibility(View.GONE);
           //show webview
          }
        });
    

    Это работает, но опять же появляется небольшое появление белого экрана при переходе на webview. А также вы не можете контролировать время вашего заставки.

  • третье решение - это то, что я хотел бы сделать, но (даже после нескольких дней поиска и попытки) не знаю, как → показать заставку в одном потоке, подготовить все для веб-просмотра в другом, а затем просто переключиться на веб-просмотр,

Мой вопрос: может ли кто-нибудь показать мне, с чего начать с этого третьего решения?

  • Я хотел попробовать что-то вроде этого ! но я не мог понять, как передать веб-просмотр в другую деятельность и из того, что я прочитал, это даже не хорошая идея.

Любое предложение, идеи, указатели? Есть ли способ показать заставку экрана, подготовить (раздуть) веб-просмотр в другом потоке, а затем переключиться на него после загрузки URL-адреса (и всего остального)?

Благодарю!!!

Теги:
multithreading
webview
screen
splash

1 ответ

1
Лучший ответ

Попробуйте использовать WebChromeClient в Webview. В WebChromeClient у вас есть метод onProgressChange.

Вы можете закрыть экран заставки, когда onProgressChange сообщит вам, что страница заканчивается для загрузки.

Изменение: вы можете вызывать в своем потоке свой Url с HttpGet, например, и получать ответ. Когда вы получите ответ, вы можете загрузить webview с помощью метода loadData (...).

  • 0
    спасибо за ваш ответ, но, как я уже сказал, я бы хотел использовать третье решение с загрузкой веб-просмотра в фоновом режиме. Интересно, что это возможно и как это можно сделать. Я знаю, что того, что вы предлагаете, будет достаточно, но я действительно хочу знать, как сделать это с другим подходом ...
  • 0
    Например, вы можете вызвать ваш URL с помощью HttpGet и получить ответ. Когда у вас есть ответ, вы можете загрузить веб-представление с помощью метода loadData (...).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню