如何使用 Cordova 6 在 iOS 中关闭“需要全屏”选项?

Posted

技术标签:

【中文标题】如何使用 Cordova 6 在 iOS 中关闭“需要全屏”选项?【英文标题】:How to turn off "Requires Full Screen" option in iOS using Cordova 6? 【发布时间】:2017-02-13 10:22:09 【问题描述】:

当您使用 Cordova 6 创建应用程序,然后为 ios 构建它时,您会看到如果您在 XCode 上打开项目属性,则启用了“需要全屏”选项:

这很麻烦,因为它会阻止应用在 iOS 上“多任务处理”(您无法在应用打开的情况下分屏),如 [CB-9161] Support iPad multitasking in iOS 9 中所述:

只想提一下,修复(2)还需要更新项目的 info plist 文件以指示应用程序不需要全屏 如下图

<key>UIRequiresFullScreen</key>
<false/>

在以前的 Cordova 版本中,您可以使用 FullScreen 首选项控制此选项。但是,这不再对 iOS 产生影响。推荐的替代方法是使用cordova-plugin-statusbar 插件。但这并没有提供任何关闭全屏的选项,并且插件提供的其他选项也不允许多任务处理。

问题:如何从 Cordova 6 项目中关闭“需要全屏”选项(意思是:在为 iOS 构建后无需手动更新 XCode 项目)?

【问题讨论】:

我想添加我们的应用最近被拒绝了,因为它是全屏的,并且“拉显示状态栏”功能没有实现。 【参考方案1】:

我会使用Cordova Custom Config plugin

使用该插件,您几乎可以通过config.xml 更改plistmanifestfile 上的任何内容

所以在你的情况下,安装插件后,只需添加:

 <config-file parent="UIRequiresFullScreen" platform="ios" target="*-Info.plist">
        <false/>
 </config-file>

在你的config.xml

【讨论】:

我无法使用 Visual Studio Tools for Apache Cordova 正确安装 cordova-custom-config 插件。所以我改用了cordova-plugin-settings-hook插件,也达到了同样的效果。 其实我还没有测试过,但我们可能不再需要安装插件来实现它。 Cordova 添加了对“config-file”的原生支持:cordova.apache.org/docs/en/6.x/plugin_ref/spec.html#config-file 如果您将该标志设置为 false,Apple 将拒绝您的应用,从 iOS 11 开始。我想这是由于 iPhone X。 您的意思是,如果您不要求全屏,Apple 会拒绝该应用程序? 我的应用被拒绝了,因为我提交时未选中“需要全屏”。去图吧。

以上是关于如何使用 Cordova 6 在 iOS 中关闭“需要全屏”选项?的主要内容,如果未能解决你的问题,请参考以下文章

即使在 Android 4.4.2 中关闭了位置服务,GetCurrentLocation 仍在 Cordova/PhoneGap 应用程序上工作

如何在 iOS 8 中关闭两个 UIViewControllers?

如何在移动 android/iOs(本机应用程序)中关闭 webview

cordova/phonegap 1.6 在第二次发布时崩溃

如何在自定义 iOS 应用扩展中关闭横向?

如何在 socket.io 1.0 中关闭服务器?