【发布时间】:2026-01-31 08:35:01
【问题描述】:
我正在使用 cordova-plugin-statusbar 来自定义我的应用在 iOS 上的状态栏的外观。具体来说,我想将StatusBarOverlaysWebView 的值更改为false,因此我在config.xml 中包含以下行:
<preference name="StatusBarOverlaysWebView" value="false" />
当我使用本地 XCode 构建进行测试时,这非常有用。但是,当我在 PhoneGap Build 上构建时,此值的默认设置(true)不会被覆盖。
经过一番折腾,我注意到config.xml 中的偏好顺序与PhoneGap 生成的偏好顺序不同。在我的本地构建中,插件plugin.xml 中的以下行包含在覆盖设置的行之前:
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" />
<param name="onload" value="true" />
</feature>
<preference name="StatusBarOverlaysWebView" value="true" />
然而,在PhoneGap 生成的config.xml 中,这些行出现在文件的最后。我猜测“最后写入获胜”,因此默认值会覆盖我的自定义首选项。
我有什么方法可以影响这个还是只是 PhoneGap Build 的错误?
【问题讨论】:
-
有什么方法可以使用 Xcode 构建?您可以修改 plist 以隐藏状态栏。
-
实际上您可以使用
config-file tag覆盖plist 设置。我知道我可以在启动时隐藏状态栏,然后使用 JavaScript 对其进行配置。我可能最终会将此作为一种解决方法,但我想了解为什么以“正确”的方式进行操作是行不通的。
标签: ios cordova phonegap-plugins phonegap-build statusbar