сначала определите enum как
enum Identifiers {
static let viewAction = "cat1"
static let newsCategory = "cat2"
}
, затем в вашем UNUserNotificationCenterDelegate
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
// 1
let userInfo = response.notification.request.content.userInfo
// 2
if let aps = userInfo["aps"] as? [String: AnyObject],
let newsItem = NewsItem.makeNewsItem(aps) {
(window?.rootViewController as? UITabBarController)?.selectedIndex = 1
// 3
if response.actionIdentifier == Identifiers.viewAction,
let url = URL(string: newsItem.link) {
let safari = SFSafariViewController(url: url)
window?.rootViewController?.present(safari, animated: true,
completion: nil)
}
}
// 4
completionHandler()
}
}
добавьте категорию в свою службу pu sh, например,
{
"aps": {
"alert": "messaga",
"sound": "default",
"link_url": "www.google.com",
"category": "cat1",
}
}
it проверит тип aps, затем pu sh просмотр контроллера, если категория типа 1 или 2. вы можете добавить столько, сколько хотите, выполнив этот путь