🔃
Expo (CNG)でiPadのときに縦画面に固定する
Expoで作っているiOSアプリケーションで、iPadの場合に縦画面に固定する方法について知らなかったので備忘録として。
app.json
(app.config.js
)にrequireFullScreen
と UISupportedInterfaceOrientations~ipad
を設定します。
{
"expo": {
// 縦画面固定
"orientation": "portrait",
"ios": {
// iPadでSlide Over/Split Viewを無効化
"requireFullScreen": true,
"infoPlist": {
// Info.plistでiPadの場合のサポートするOrientationを指定
"UISupportedInterfaceOrientations~ipad": [
"UIInterfaceOrientationPortrait",
"UIInterfaceOrientationPortraitUpsideDown"
]
}
},
}
設定後、expo prebuild
でネイティブのコードを生成して、Info.plistに "UISupportedInterfaceOrientations~ipad"
が反映されていればOK!
これでiPadの画面固定ができました!
なぜ`requireFullScreen`が必要だったのか
最初は"infoPlist"
で"UISupportedInterfaceOrientations~ipad"
を指定したらら固定されるかな?と思いましたが、@expo/config-pluginsで requireFullScreen=false
のときは値を上書きするようになっていました。このあたりはドキュメントに書かれていたら嬉しいですね😓
Discussion