在 Cordova Build 上设置 Cordova 状态栏插件默认值

Posted

技术标签:

【中文标题】在 Cordova Build 上设置 Cordova 状态栏插件默认值【英文标题】:Set Cordova StatusBar Plugin Defaults on Cordova Build 【发布时间】:2015-02-10 08:20:33 【问题描述】:

我正在使用 Cordova (4.2.0) 状态栏插件。我想要的选项是:

<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarStyle" value="lightcontent" />
<preference name="StatusBarBackgroundColor" value="#A7A7A7"/>

一切都很好,当我在构建(在 Xcode 中)并在设备上运行应用程序之前直接在 XCode 中编辑 config.xml 文件时。

我的问题是,一旦重新运行“cordova build ios”,config.xml 文件中的设置就会恢复为以下默认设置:

<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarStyle" value="lightcontent" />

好的 - 所以我知道 default.xml 并将我需要的设置放在那里。麻烦是现在我得到了(删除了不必要的行):

<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarStyle" value="lightcontent" />
<preference name="StatusBarBackgroundColor" value="#A7A7A7" />

<feature name="StatusBar">
    <param name="ios-package" value="CDVStatusBar" />
    <param name="onload" value="true" />
</feature>
<preference name="StatusBarOverlaysWebView" value="true" /> 

注意第二个“StatusBarOverlaysWebView”条目,这个“StatusBarOverlaysWebView”条目会覆盖第一个!!

于是我深入挖掘,找到了plugin.xml,其中包含:

        <preference name="StatusBarOverlaysWebView" value="true" />
        <preference name="StatusBarStyle" value="lightcontent" />

一定是这样,所以我将其更改为我所需的默认值......但不,我仍然得到第二个“StatusBarOverlaysWebView”,我不知道它为什么或来自哪里。有人可以帮忙吗?

提前致谢 尼克

【问题讨论】:

【参考方案1】:

试试这个:

    移除 iOS 平台(cordova platform rm ios)。 卸载插件(cordova plugin rm org.apache.cordova.statusbar)。 编辑根目录中的 config.xml 并在其中添加 3 个首选项。 重新安装插件(cordova 插件添加 org.apache.cordova.statusbar)。 编辑 plugin.xml 并删除 2 个默认首选项。 添加回 iOS 平台(cordova 平台添加 ios)。

我打赌这会解决你的问题。

【讨论】:

以上是关于在 Cordova Build 上设置 Cordova 状态栏插件默认值的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 地理定位插件在 android 设备上不起作用

Cordova 5 build 命令正在删除 iOS 设备方向设置

Sencha Touch 2.3 / Cordova : Build 直接在设备上运行

Cordova:您可能没有运行此项目所需的环境或操作系统

如何在 Visual Studio 2013 的 iOS 构建服务器中升级 cordova 版本?

如何在Android中找到崩溃Cordova应用程序的内容?