はじめに
- プッシュ通知にはuserInfoでデータを入れることが出来、そのデータからどのプッシュ通知を押されたかがわかります
- プッシュ通知はdelegateメソッドでプッシュ通知が押されたことがわかります。
上記2つを組み合わせることでプッシュ通知を押された時に処理を分岐することが可能です。
プッシュ通知にデータを入れる
プッシュ通知にはuserInfoがあり、key:value形式でデータを入れられますので、ここにデータを入れます。
let content = UNMutableNotificationContent()
content.title = "タイトル"
content.body = "メッセージ"
content.categoryIdentifier = "alarm"
content.userInfo = ["key": "value"]
content.sound = UNNotificationSound.default
プッシュ通知を押された時の処理
UNUserNotificationCenterDelegateのdidReceiveはプッシュ通知でアプリが開かれた時に発火します。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {}
この中のresponseにプッシュ通知に入れたuserInfoの値が入っているので取り出すことが可能です。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
// userInfo取得
let userInfo = response.notification.request.content.userInfo
//データを取り出す
if let customData = userInfo["key"] as? String {
print("key data received: \(key)")
//データにより処理を分ける
}
// 完了したらcompletionHandlerを呼ぶ
completionHandler()
}
そのuserInfoで渡されたデータで処理を分岐することで、プッシュ通知毎に処理を分岐することが可能です。
まとめ
プッシュ通知にはデータを入れられるのでそのデータを使ってプッシュ通知を押された時の処理分岐が可能
iOS開発のおすすめ書籍
あの実装方法どうだったっけ?を解決してくれます。swiftの文法から部品、ネットワーク、各種センサーなど端末機能の使い方まで対応しており、あると便利な一冊です。
Swiftの勉強をするならUdemyがおすすめ!
私はUdemyでSwiftの勉強をしてアプリを自作して公開出来るようになりました。
特に以下のコースは基礎的なUIKitの使い方からAR、機械学習(CoreML)までiOSの機能を網羅しており、図解が豊富なハンズオン形式なのでアプリを作りながら楽しく学べます。
2022/12/27時点で評価数80000越えのSwiftのトップコースです。
iOS & Swift – The Complete iOS App Development Bootcamphttps://www.udemy.com/courses/search/?src=ukw&q=swift
初回は大幅な割引があったり、Udemyは定期的な割引もしていますので良ければ是非。
なお上記は英語のコースになりますが日本語字幕に対応しています。一応以下で英語コースの勉強方法(日本語化)を記載しています。ご参考にどうぞ。
もしご参考になりましたら下部にある役に立ったボタン、TwitterなどSNSへの投稿をしていただけると励みになります
コメント