が付属しています私がやること。 "response.notification.request.content.categoryIdentifier"は、期待される値で正しく来るが、request.actionIdentifierは決して正しく来ない(以下の例では "mycustomactionidentifier")。誰かが何かを見逃しているか知っていますか?ユーザ通知要求は常に私がUNUserNotificationCenterDelegate(>イオス10)を使用していると私は通知からの応答を確認することができますデリゲートメソッドのいずれかを問わず、常にactionIdentifier等しい「com.apple.UNNotificationDefaultActionIdentifier」を持っていないデフォルトのアクション識別子
extension NotificationManager: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Swift.Void) {
completionHandler([.alert,.sound])
}
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Swift.Void) {
if response.notification.request.content.categoryIdentifier == "TEST" {
if response.actionIdentifier == "mycustomactionidentifier" {
NSLog("it finally works dude!")
}
}
completionHandler()
}
}
私は通知センターにアクションとカテゴリを追加しました:
let uploadAction = UNNotificationAction(identifier: "mycustomactionidentifier", title: "Uploaded", options: [])
let category = UNNotificationCategory(identifier: "TEST", actions: [uploadAction], intentIdentifiers: [])
center.setNotificationCategories([category])
と正しい識別子入れてリクエスト送信しています:まず
let uploadContent = UNMutableNotificationContent()
uploadContent.title = String(number) + " asset(s) added"
uploadContent.body = "Check your inventory to manage your assets!"
uploadContent.categoryIdentifier = "TEST"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 6, repeats: false)
let uploadRequestIdentifier = "mycustomactionidentifier"
let uploadRequest = UNNotificationRequest(identifier: uploadRequestIdentifier, content: uploadContent, trigger: trigger)
UNUserNotificationCenter.current().add(uploadRequest, withCompletionHandler: nil)
あなたの画面に通知が来るとどうなりますか?スクリーンショットを追加できますか?あなたはどんな行動をしますか? – Honey
あなたは間違った比較をしています。あなたのアクション識別子は "mycustomactidentifier"ですが、あなたは "mycustomidentifier"としてチェックしています。したがって、コンパイラは単にアクション識別子を無視しました。 – Mannopson
こんにちは@ハニー、それは私が選んだように、タイトルと本文で、定期的な通知として来る。通知をクリックすると正しいcategoryIdentifierが返されますが、間違ったactionIdentifierが返されます。 – user2116499