【Swift UI】アプリ側からWidgetを更新する方法!WidgetCenter

この記事からわかること
- Swift UIでWidgetをアプリ側から更新する方法
- WidgetCenterのreloadAllTimelinesメソッドの使い方
- sharedプロパティやreloadTimelines(ofKind:)、getCurrentConfigurationsの使い方
index
[open]
\ アプリをリリースしました /
SwiftUIでWidgetを実装している場合にアプリ側からデータを更新した際にWidgetビューも更新させる方法をまとめていきます。
アプリ側からWidgetを更新する方法
アプリ側からWidgetを更新するにはWidgetCenter
のreloadAllTimeline
メソッドを使用します。使用するためにはWidgetKit
を読み込む必要があります。
このメソッドを実行するとWidgetを表示させるためのタイムラインが更新されます。
WidgetCenterクラス
WidgetCenter
はWidgetの設定情報を取得したり、タイムラインを更新するための機能を提供するクラスです。
sharedプロパティ
またこのクラスはシングルトンパターンなのでアプリ内に生成するインスタンスは必ず1つであることが保証されます。
インスタンスにはshared
プロパティから参照することができます。
reloadAllTimelinesメソッド
reloadAllTimelines
は全てのWidgetのタイムラインを更新するメソッドです。
reloadTimelines(ofKind:)メソッド
reloadTimelines(ofKind:)
は指定した種類のWidgetのタイムラインを更新するメソッドです。引数にはWidgetの設定で指定した識別文字列(kind)を渡します。
getCurrentConfigurations(_:)メソッド
getCurrentConfigurations(_:)
はWidgetに関する設置情報を取得できるメソッドです。completionHandlerで配列形式に格納されたWidgetごとの設定情報にアクセスできるようになっています。
配列内の要素はWidgetInfo
型になっており、以下の情報を保持しています。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。