Как предотвратить отображение счетчика загрузки при нажатии на ссылку на странице в приложении Android webview?

#javascript #android #jquery #webview

#javascript #Android #jquery #webview

Вопрос:

Я работаю над счетчиком загрузки страницы для веб-сайта, он отлично работает в настольных и мобильных браузерах, но возникает проблема при загрузке веб-сайта в мобильное приложение Android webview.

Когда я нажимаю ссылку Facebook на своем веб-сайте, загруженном в мобильное приложение Facebook для Android, он открывает веб-сайт Facebook в мобильном браузере, но когда я переключаюсь обратно в приложение Android webview, я обнаружил, что предыдущая страница загружена, а также постоянно отображается счетчик загрузки, который исчезает при обновлении страницы.

Я предпочту решение JavaScript / jQuery.

HTML

 <div class="loading-spinner-fixed">
     <div class="spinner"></div>
</div>

<a href="https://www.facebook.com/pagename" target="_blank">Facebook</a>
  

CSS

 .loading-spinner-fixed {
    box-sizing: border-box;
    background-color: white;
    border-radius: 50%;
    position: fixed;
    left: 50%;
    top: 50%;
    width: 60px;
    height: 60px;
    margin: -30px 0 0 -30px;
    z-index: 99999999;
    box-shadow: 0 0 12px 0 rgba(0,0,0,.2);
}


.loading-spinner-fixed .spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    display: table-cell;
    margin: -16px 0 0 -16px;
    border: 4px solid #f3f3f3;
    border-radius: 50%;
    border-top: 4px solid #00bbcc;
    width: 24px;
    height: 24px;
    animation: spin .5s linear infinite;
}
  

JavaScript

 $(document).ready(function () {
    $('.loading-spinner-fixed').hide();
});

$(window).on('beforeunload', function () {
    $('.loading-spinner-fixed').show();
});
  

Ответ №1:

Внутри вашей активности переопределите onResume() метод жизненного цикла и добавьте эту строку

 if(mWebView != null){
   mWebView.load("javascript:$('.loading-spinner-fixed').hide();")
}
  

Это вызовет hide для вашего .loading-spinner-fixed класса