monaca

[Monaca] iOSのオリエンテーションについて

Monacaで開発するiOSアプリで、オリエンテーションの制御を行う場合は、 config.xml に下記のように設定を行う必要があります。(Cordova 5系以上が対象です。)

config.xml
<!--- portraitの場合 -->
<platform name="ios">
  <preference name="orientation" value="portrait"/>
</platform>

orientationの値には、all landscape portrait を指定することができます。

注意点といたしまして、上記の設定は、ビルド時に設定が反映されるため、Monacaデバッガーでは確認することはできません。動作を確認する場合は、ビルドを行い実機で確認する必要があります。

portraitで端末の向きを正位置で固定する

上記の設定では、端末を180度回転させた場合、画面が回転します。
端末の向きを正位置で固定する場合は、下記の設定が必要になります。

下記の設定は、Monacaで提供している Custom Configプラグイン の機能を利用しています。
下記の設定を行う場合は、Custom Configプラグイン有効 にしてください。

Cordova 5系 または Cordova 6系の場合

config.xml
<platform name="ios">
  <preference name="orientation" value="portrait"/>
  <config-file target="*-Info.plist" parent="UISupportedInterfaceOrientations" overwrite="true">
    <array>
      <string>UIInterfaceOrientationPortrait</string>
    </array>
  </config-file>
  <config-file target="*-Info.plist" parent="UISupportedInterfaceOrientations~ipad" overwrite="true">
    <array>
      <string>UIInterfaceOrientationPortrait</string>
    </array>
  </config-file>
</platform>

Cordova 7系の場合

config.xml
<platform name="ios">
  <preference name="orientation" value="portrait"/>
  <custom-config-file parent="UISupportedInterfaceOrientations" target="*-Info.plist" mode="replace">
    <array>
      <string>UIInterfaceOrientationPortrait</string>
    </array>
  </custom-config-file>
  <custom-config-file parent="UISupportedInterfaceOrientations~ipad" target="*-Info.plist" mode="replace">
    <array>
      <string>UIInterfaceOrientationPortrait</string>
    </array>
  </custom-config-file>
</platform>

landscapeで端末の向きを左位置で固定する

landscapeの場合も同様に、向きを固定する場合は、下記の設定が必要になります。

Cordova 5系 または Cordova 6系の場合

config.xml
<platform name="ios">
  <preference name="orientation" value="landscape"/>
  <config-file target="*-Info.plist" parent="UISupportedInterfaceOrientations" overwrite="true">
    <array>
      <string>UIInterfaceOrientationLandscapeLeft</string>
    </array>
  </config-file>
  <config-file target="*-Info.plist" parent="UISupportedInterfaceOrientations~ipad" overwrite="true">
    <array>
      <string>UIInterfaceOrientationLandscapeLeft</string>
    </array>
  </config-file>
</platform>

Cordova 7系の場合

config.xml
<platform name="ios">
  <preference name="orientation" value="landscape"/>
  <custom-config-file parent="UISupportedInterfaceOrientations" target="*-Info.plist" mode="replace">
    <array>
      <string>UIInterfaceOrientationLandscapeLeft</string>
    </array>
  </custom-config-file>
  <custom-config-file parent="UISupportedInterfaceOrientations~ipad" target="*-Info.plist" mode="replace">
    <array>
      <string>UIInterfaceOrientationLandscapeLeft</string>
    </array>
  </custom-config-file>
</platform>

landscapeで端末の向きを右位置で固定する

Cordova 5系 または Cordova 6系の場合

config.xml
<platform name="ios">
  <preference name="orientation" value="landscape"/>
  <config-file target="*-Info.plist" parent="UISupportedInterfaceOrientations" overwrite="true">
    <array>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
  </config-file>
  <config-file target="*-Info.plist" parent="UISupportedInterfaceOrientations~ipad" overwrite="true">
    <array>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
  </config-file>
</platform>

Cordova 7系の場合

config.xml
<platform name="ios">
  <preference name="orientation" value="landscape"/>
  <custom-config-file parent="UISupportedInterfaceOrientations" target="*-Info.plist" mode="replace">
    <array>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
  </custom-config-file>
  <custom-config-file parent="UISupportedInterfaceOrientations~ipad" target="*-Info.plist" mode="replace">
    <array>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
  </custom-config-file>
</platform>

おわりに

iOSでのオリエンテーション設定の際に、画面の位置を固定したい場合は、一度お試しください。