0
0

LiveActivityを導入してNotificationを利用したインタラクティブ性を持たせる part1

Posted at

LiveActivityの導入

LiveActivityの導入はFile→New→Targetから、「Widget Extension」を選択します。そこでInclude Live Activityがあるのでチェックを入れます。
なお、info.plistのSupported Live Activityをtrueに設定しておきます。

LiveActivityを起動

デフォルトで作成されるstructのプロパティにcontentStateを追加していきます。

LiveActivityAttributes.swift
struct LiveActivityAttributes: ActivityAttributes {
    public struct ContentState: Codable, Hashable {
        // Dynamic stateful properties about your activity go here!
        var emoji: String
    }

    // Fixed non-changing properties about your activity go here!
    var contentState: ContentState
    var name: String
}

そしてアプリ側からLiveActivityを起動していきます。

ContentView.swift

struct ContentView: View {
    var body: some View {
        VStack {
			Button("開始") {
				let contentState = LiveActivityAttributes.ContentState(emoji: "🍛")
				let attributes = LiveActivityAttributes(contentState: contentState,
														name: "テスト")
				
				do {
					_ = try ActivityKit.Activity<LiveActivityAttributes>.request(attributes: attributes,
																							content: .init(state: contentState,
																										   staleDate: nil), pushType: nil)
				} catch {
					print(error)
				}
			}
        }
    }
}

結果

開始ボタンをタップするとLiveActivityが起動していることが確認できます。
スクリーンショット 2024-05-31 14.18.50.png
スクリーンショット 2024-05-31 14.18.59.png
スクリーンショット 2024-05-31 14.19.19.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0