You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

InAppBrowser设置hidespinner=yes后iOS原生加载指示器仍显示的解决办法

解决iOS上InAppBrowser原生加载指示器无法禁用的问题

我完全懂你的困扰——明明在InAppBrowser的配置里加了hidespinner=yes,iOS的原生加载圈圈还是会在页面加载时跳出来,确实挺烦人的。下面几个方案可以帮你彻底解决这个问题:

1. 升级InAppBrowser插件到最新版本

早期版本的cordova-plugin-inappbrowser对hidespinner参数的支持存在bug,尤其是在iOS 14+的系统上。先尝试升级插件:

cordova plugin remove cordova-plugin-inappbrowser
cordova plugin add cordova-plugin-inappbrowser@latest

升级后再测试你的代码,很多情况下这个问题就能直接解决。

2. 检查target参数的取值

确保你调用open()方法时传入的target参数是_blank(InAppBrowser的默认值)。如果设置成_self或者_system,hidespinner参数可能不会生效——因为这时候会使用应用内的WebView或者系统浏览器,而非InAppBrowser实例。

3. 修改插件原生代码(强制禁用)

如果升级插件后问题依旧,你可以手动修改iOS端的插件代码,直接关闭WebView的加载指示器:

  1. 找到项目中的plugins/cordova-plugin-inappbrowser/src/ios/CDVInAppBrowser.m文件
  2. 定位到createInAppBrowserViewController方法,在创建WKWebViewConfiguration的部分,添加以下代码:
configuration.showsProgressView = NO;
  1. 如果你用的是旧版UIWebView(不推荐,但如果项目还在使用),则找到创建UIWebView的地方,添加:
webView.showsNetworkActivityIndicator = NO;

修改后重新编译iOS项目,原生加载指示器就会被彻底禁用。

4. 额外的config.xml配置

在项目的config.xml中添加以下偏好设置,进一步增强对iOS WebView行为的控制:

<preference name="DisallowOverscroll" value="true" />
<preference name="WKWebViewOnly" value="true" />

WKWebViewOnly会强制使用更现代的WKWebView,避免旧版UIWebView的兼容性问题。

内容的提问来源于stack exchange,提问作者akadorian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:20:11