🚏

【iOS 17】スタンバイモードについて調べたことのメモ

2023/09/24に公開

スタンバイモードの実装方法について調べたことに関するメモです。

スタンバイモードとは

iPhoneを横向きで充電している時に、フルスクリーンでウィジェットを表示することができる機能です。iOS 17以降のOSをインストールしたiPhoneで使用することができます。

実装方法

スタンバイモード時にウィジェットを表示するための特別な実装は不要でした。Widget Extensionが追加されたプロジェクトを、Xcode 15.0以降の環境でビルドするだけで、スタンバイモード時にウィジェットを表示することができるようになります。

iPhoneシミュレータでの動作確認方法

iPhoneシミュレータをアクティブにした状態で、メニューバー[Features] -> [Show StandBy]の順に選択することで、起動中のiPhoneシミュレータをスタンバイモードに変更することができます。

さらに、iPhoneシミュレータをアクティブにした状態で、メニューバー[Device] -> [Rotate Left]の順に選択することで、実機でスタンバイモードに変更した時と同様の状態に変更することができます。

スタンバイモード状態でディスプレイをロングタップすると、スタンバイモード時に表示するウィジェットを指定することができます。

スタンバイモード時のウィジェットを無効化する方法

iOS 17以降から使用可能なdisfavoredLocations(_:for:)を使用することで、スタンバイモード時のウィジェットを無効化することができます。

https://developer.apple.com/documentation/swiftui/widgetconfiguration/disfavoredlocations(_:for:)

また、disfavoredLocations(_:for:)を使用することで、スタンバイモードだけではなく、ホームスクリーンやロックスクリーンモードでのウィジェット表示を無効化することもできます。

参考資料

・disfavoredLocations(_:for:)

https://developer.apple.com/documentation/swiftui/widgetconfiguration/disfavoredlocations(_:for:)

Discussion