在android webview应用程序的页面上单击链接时如何防止显示加载微调器?

Posted

技术标签:

【中文标题】在android webview应用程序的页面上单击链接时如何防止显示加载微调器?【英文标题】:How to prevent showing loading spinner when a link is clicked on a page in android webview app? 【发布时间】:2020-12-23 09:21:09 【问题描述】:

我正在为网站开发页面加载微调器,它在桌面和移动浏览器中运行良好,但在 android 移动 webview 应用程序中加载网站时出现问题。

当我点击我在 android 移动 webview 应用程序中加载的网站上的 Facebook 链接时,它会在移动浏览器中打开 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

【讨论】:

以上是关于在android webview应用程序的页面上单击链接时如何防止显示加载微调器?的主要内容,如果未能解决你的问题,请参考以下文章

Android WebView JQuery 移动页面加载问题

Android Webview问题:如何在单个活动中打开具有不同按钮的不同页面

android webview 都有哪些软件应用

查看 Android WebView 是不是显示缓存页面

android中webview加载html,用本地的css渲染页面如何做

android webview 怎么更改a标签或者获得里面的数据