无法使用xcode phonegap在ios中隐藏状态栏

Posted

技术标签:

【中文标题】无法使用xcode phonegap在ios中隐藏状态栏【英文标题】:cant hide statusbar in ios using xcode phonegap 【发布时间】:2013-03-09 11:02:40 【问题描述】:

我正在尝试删除我的 xcode ios 项目中的状态栏。 phonegap 2.5 版。我试过以下。

1) 通过在 config.xml 中添加以下行来从 phonegap 特定项目中删除状态栏

<preference name="fullscreen" value="true" />

这是我的 xml 文件。

    <?xml version="1.0" encoding="UTF-8"?>
    <widget>
    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
    <preference name="SuppressesIncrementalRendering" value="false" />
    <preference name="UIWebViewBounce" value="false" />
    <preference name="TopActivityIndicator" value="gray" />
    <preference name="EnableLocation" value="false" />
    <preference name="EnableViewportScale" value="true" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="ShowSplashScreenSpinner" value="false" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="FadeSplashScreenDuration" value=".25" />
    <preference name="MediaPlaybackRequiresUserAction" value="false" />
    <preference name="AllowInlineMediaPlayback" value="false" />
    <preference name="BackupWebStorage" value="cloud" />
    <preference name="fullscreen" value="true" />

    <content src="index.html" />

    <plugins>
        <plugin name="Device" value="CDVDevice" />
        <plugin name="Logger" value="CDVLogger" />
        <plugin name="Compass" value="CDVLocation" />
        <plugin name="Accelerometer" value="CDVAccelerometer" />
        <plugin name="Camera" value="CDVCamera" />
        <plugin name="NetworkStatus" value="CDVConnection" />
        <plugin name="Contacts" value="CDVContacts" />
        <plugin name="Debug Console" value="CDVDebugConsole" />
        <plugin name="Echo" value="CDVEcho" />
        <plugin name="File" value="CDVFile" />
        <plugin name="FileTransfer" value="CDVFileTransfer" />
        <plugin name="Geolocation" value="CDVLocation" />
        <plugin name="Notification" value="CDVNotification" />
        <plugin name="Media" value="CDVSound" />
        <plugin name="Capture" value="CDVCapture" />
        <plugin name="SplashScreen" value="CDVSplashScreen" />
        <plugin name="Battery" value="CDVBattery" />
        <plugin name="Globalization" value="CDVGlobalization" />
        <plugin name="InAppBrowser" value="CDVInAppBrowser" />
    </plugins>

    <access origin="*" />
</widget>

测试

我也将此添加到我的 plist 文件中。这应该会删除特定 ios 应用的状态栏。

<key>[UIApplication sharedApplication].statusBarHidden = YES;</key>

代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleIcons</key>
    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>icon.png</string>
                <string>icon@2x.png</string>
                <string>icon-72.png</string>
                <string>icon-72@2x.png</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
    </dict>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
    </array>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDisplayName</key>
    <string>$PRODUCT_NAME</string>
    <key>CFBundleExecutable</key>
    <string>$EXECUTABLE_NAME</string>
    <key>CFBundleIconFile</key>
    <string>icon.png</string>
    <key>CFBundleIdentifier</key>
    <string>org.apache.cordova.HelloWorld</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$PRODUCT_NAME</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>NSMainNibFile</key>
    <string></string>
    <key>[UIApplication sharedApplication].statusBarHidden = YES;</key>
    <string>YES</string>
    <key>NSMainNibFile~ipad</key>
    <string></string>
</dict>
</plist>

为什么这些都不起作用??

【问题讨论】:

试试这个:***.com/a/20152984/1856577 使用 phonegap 1.9 测试。 【参考方案1】:

OP 99% 正确,但您只需要勾选“在应用程序启动期间隐藏”框

你可以在这里找到它:

选择项目导航器(侧边栏中的文件夹图标)

选择根项目(带有您项目名称的项目)

然后在主菜单中,突出显示“摘要”选项卡,向下滚动到“状态栏”

【讨论】:

【参考方案2】:

我终于解决了这个问题..!我通过单击项目进入项目属性。在 target / yourProject 下有一个状态栏菜单。我选择了状态栏:黑色半透明修复了它。

【讨论】:

以上是关于无法使用xcode phonegap在ios中隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章

getJSON 在 Xcode 4.2 和 ios5 中无法使用 PhoneGap1.1.0

从PhoneGap Camera API返回时如何隐藏iOS7状态栏?

无法存档更新的 iOS PhoneGap 应用程序

iOS notification.alert() 无法使用 Phonegap 2.3.0

使用 AngularJS 在 iOS 的 PhoneGap 3.3 中登录 XCODE

重命名后新的 PhoneGap / Cordova iOS 项目将无法运行