シンプルなアプリに問題があります。コードが機能しない理由がわかりません。これは、WatchOS 用のアプリに通知シーンを含めるコードです。
@main
struct MyApp: App {
@SceneBuilder var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
WKNotificationScene(
controller: NotificationController.self,
category: LocalNotifications.categoryIdentifier
)
LocalNotifications には、次のコードがあります。
static let categoryIdentifier = "Scala5"
func register() async throws {
print("Register")
let current = UNUserNotificationCenter.current()
try await current.requestAuthorization(options: [.alert, .sound])
current.removeAllPendingNotificationRequests()
let action = UNNotificationAction(
identifier: self.actionIdentifier,
title: "Press me",
options: .foreground)
let category = UNNotificationCategory(
identifier: Self.categoryIdentifier,
actions: [action],
intentIdentifiers: [])
current.setNotificationCategories([category])
current.delegate = self
}
したがって、Xcode を使用して通知をテストすると、「Press me」というタイトルのボタンが通知に表示されるはずですが、メソッド レジスタが呼び出されることはありません。私のファイル file.apns には、次の行があります。
{
"aps": {
"alert": {
"body": "Test message",
"title": "Optional title",
"subtitle": "Optional subtitle"
},
"category": "Scala5"
}
}
Apple のドキュメントによると、apns ファイルのカテゴリは、最終クラス LocalNotifications のカテゴリと一致します。それで、私のエラーは何ですか?技術的な解決策が欲しいのですが、ライフサイクルを理解することがさらに重要です。ありがとう