Firebase Cloud Messaging カスタムキーソリューション

Firebase Cloud Messaging のダッシュボードには、Advanceセクションがあり、ここからカスタムキーとその値を指定することができます。しかしながらiOSにおいては、メッセージをダッシュボードから送信してもカスタムキーのデータがAPNS payloadに入りません。しかしdictionary (anyHashable)内にカスタムキーが入っているので、これをresponse.notification.request.content.userInfo[“MyCustomKey”]で取り出すことができます。これにより、ユーザーがメッセージをクリックし、カスタムキーの値がURLであれば、指定先に飛ばすことができます。つまりカスタムURL(ディープリンク)が実現できます。AppleDelegate内では

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {

let userInfo = response.notification.request.content.userInfo

let url = URL(string: userInfo[“カスタムキーの名前”] as! String)

以上 ディープリンクは別セクションで説明します。