Cordova - iOS - 不允许所有方向

Cordova - iOS - Can't allow all orientations

我最近在本地从 Phongegap Build 切换到 cordova。我一辈子都想不出如何让 iOS 中的方向允许所有。这让我发疯。

我已经尝试了配置中所有记录的方法,例如:

<platform name="ios">
    <preference name="orientation" value="all" />
</platform>

但这不起作用。我还尝试通过 plugin 手动设置 plist 属性,但这似乎也没有用。我在这里错过了什么?当我打开 .ipa 文件时,其中的 plist 只有以下方向属性:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>

据我了解,应该有四个这样的:

<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

您可以使用 cordova-custom-config 插件来实现此目的 - 在将插件安装到您的本地项目后,将以下内容添加到您的 config.xml:

<platform name="ios">

    <!-- Set orientation on iPhone -->
    <config-file platform="ios" target="*-Info.plist" parent="UISupportedInterfaceOrientations">
        <array>
            <string>UIInterfaceOrientationPortrait</string>
            <string>UIInterfaceOrientationPortraitUpsideDown</string>
            <string>UIInterfaceOrientationLandscapeLeft</string>
            <string>UIInterfaceOrientationLandscapeRight</string>
        </array>
    </config-file>

    <!-- Set orientation on iPad -->
    <config-file platform="ios" target="*-Info.plist" parent="UISupportedInterfaceOrientations~ipad">
        <array>
            <string>UIInterfaceOrientationPortrait</string>
            <string>UIInterfaceOrientationPortraitUpsideDown</string>
            <string>UIInterfaceOrientationLandscapeLeft</string>
            <string>UIInterfaceOrientationLandscapeRight</string>
        </array>
    </config-file>

打开XCode中的项目应该可以看到plist中设置了相关的方向。

首选项名称不区分大小写,正确的条目必须是:

<preference name="Orientation" value="all" />

文档:http://cordova.apache.org/docs/en/dev/config_ref/index.html#preference

如果您需要 iPad 和 iPhone 的特定值,那么 cordova-custom-config 非常有用。