ios - 解析 Apns 负载

标签 ios swift apple-push-notifications

需要解析 Apns 负载并获取深度链接的 url。

我尝试解析 apns 有效负载。它为我提供了一本带有键 aps 的字典,并且有多个深层链接 url 的键值。 url 的每个字母一个。

func getPushNotificationDeeplink(notificationDictionary: [AnyHashable:Any]) {
        print("Notification dictionary = \(notificationDictionary)")

        guard let aps = notificationDictionary["aps"] as? [String: AnyObject] else {

            return
        }

    }

结果:

Notification dictionary = [AnyHashable("12"): e, AnyHashable("28"): s, AnyHashable("38"): l, AnyHashable("27"): n, AnyHashable("aps"): {
        alert =     {
            body = "Message 12";
            title = "Notification R2";
        };
        badge = 1;
    }, AnyHashable("18"): a, AnyHashable("40"): }, AnyHashable("29"): f, AnyHashable("10"): m, AnyHashable("1"): ", AnyHashable("13"): -, AnyHashable("37"): i, AnyHashable("32"): -, AnyHashable("0"): {, AnyHashable("3"): r, AnyHashable("23"): /, AnyHashable("15"): o, AnyHashable("24"): t, AnyHashable("20"): d, AnyHashable("5"): ", AnyHashable("34"): e, AnyHashable("36"): a, AnyHashable("19"): r, AnyHashable("39"): ", AnyHashable("2"): u, AnyHashable("31"): r, AnyHashable("7"): ", AnyHashable("33"): d, AnyHashable("16"): r, AnyHashable("21"): :, AnyHashable("30"): e, AnyHashable("17"): w, AnyHashable("35"): t, AnyHashable("11"): m, AnyHashable("22"): /, AnyHashable("25"): r, AnyHashable("9"): i, AnyHashable("4"): l, AnyHashable("26"): a, AnyHashable("8"): a, AnyHashable("6"): :, AnyHashable("14"): f]

最佳答案

你可以试试

func getPushNotificationDeeplink(notificationDictionary: [AnyHashable:Any]) {
        print("Notification dictionary = \(notificationDictionary)")

        guard let aps = notificationDictionary["aps"] as? [String: Any] , 
              let alert = aps["alert"] as? [String: Any] , 
              let body = alert["body"] as? String , 
              let title = alert["title"] as? String else  {

            return
        }

       print("Body is \(body) Title is \(title)")

}

关于ios - 解析 Apns 负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56261892/

相关文章:

php - Swift - 查找附近运行应用程序的其他用户

arrays - 如何使用 Firebase 数据库进行分页?

swift - 如何从 Objective-C 父类(super class)访问 Swift 子类中的私有(private)变量?

iphone - 如何在 Ad Hoc 下获取 iPhone 推送通知的设备 token

javascript - 如何使用javascript测试元素在列表中排序?

ios - SVProgressHUD 如何延迟指定的时间

iphone - 如何在核心数据中保存单个实体

ios - Swift Firebase - 如何向 viewDidLoad 添加观察者,在 viewDidDisappear 中删除它,然后在 viewWillAppear 中再次读取它?

php - 使用 .p8 文件使用 php 代码发送 ios 推送通知

iOS 配置 - 如果我创建临时配置,它会破坏应用商店中现有应用的 APN 吗?