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)
}
}
}
}
}