I implemented a function to open an AlertView when I receive a remote notification like this:
func application(application: UIApplication, didReceiveRemoteNo
struct Push: Decodable {
let aps: APS
struct APS: Decodable {
let alert: Alert
struct Alert: Decodable {
let title: String
let body: String
}
}
init(decoding userInfo: [AnyHashable : Any]) throws {
let data = try JSONSerialization.data(withJSONObject: userInfo, options: .prettyPrinted)
self = try JSONDecoder().decode(Push.self, from: data)
}
}
Usage:
guard let push = try? Push(decoding: userInfo) else { return }
let alert = UIAlertController(title: push.aps.alert.title, message: push.aps.alert.body, preferredStyle: .alert)