Onesignal OSNotificationPayload作为userInfo有效负载?

问题描述 投票:0回答:1

我需要使用userinfo数据中包含的NotificationCenter POST请求传递OSNotificationPayload类型的有效负载,但我不断收到以下错误Cannot convert value of type 'OSNotificationPayload' to expected argument type '[AnyHashable : Any]?'

我是个快速的菜鸟,有可能强迫这样做吗?受影响的代码如下

        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
            )
    }   
ios swift swift3 swift4 onesignal
1个回答
0
投票

通知的userInfo应该是字典,因此您的代码可以如下所示>>

let notificationOpenedBlock: OSHandleNotificationActionBlock = { result in

           let payload: OSNotificationPayload = result!.notification.payload

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

        }
© www.soinside.com 2019 - 2024. All rights reserved.