Onesignal OSNotificationPayload как полезная нагрузка userInfo? - PullRequest
0 голосов
/ 04 марта 2020

Мне нужно передать полезную нагрузку типа OSNotificationPayload, используя POST-запрос NotificationCenter, содержащийся в данных userinfo, но я продолжаю получать следующую ошибку Cannot convert value of type 'OSNotificationPayload' to expected argument type '[AnyHashable : Any]?'

Я быстрый noob ie, возможно ли это заставить это? затронутый код ниже

        let notificationOpenedBlock: OSHandleNotificationActionBlock = { result in

           let payload: OSNotificationPayload = result!.notification.payload

            NotificationCenter.default.post(name: Notification.Name("Notification"), object: nil, userInfo: payload )

        }

У меня есть настройки наблюдателя в другом классе

    public override func load() {
       let nc = NotificationCenter.default
            nc.addObserver(self, selector: #selector(self.handleSignal(_:)), name: Notification.Name("Notification"), object: nil)
    }



    @objc func handleSignal(_ notification: NSNotification)
    {
        let image = notification.userInfo?["notify"] as? OSNotificationPayload
            notifyListeners(
                "myPluginEvent",
                data: ["payload":image as Any],
                retainUntilConsumed: true
            )
    }   

1 Ответ

0 голосов
/ 04 марта 2020

UserInfo уведомления должен быть словарем, поэтому ваш код может выглядеть следующим образом:

let notificationOpenedBlock: OSHandleNotificationActionBlock = { result in

           let payload: OSNotificationPayload = result!.notification.payload

            NotificationCenter.default.post(name: Notification.Name("Notification"), 
                object: nil, userInfo: ["payload": payload] )

        }
...