#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
класса