iOS 15:启用 "Configure in App" 通知选项

iOS 15: Enabling "Configure in App" option for notifications

在 iOS15 中,通知中心进行了一些大修。现在可以向左滑动通知并在一些“选项”之间进行选择。所有这些选项都与显示通知的应用程序的通知设置有关。

我注意到一些应用程序有一个附加选项,允许用户配置应用程序内通知设置。我在弄清楚如何启用此选项时遇到问题。

这是一个 Snapchat 的例子,它有一个额外的选项,“在 Snapchat 中配置”

Screenshot of example

我已经尝试阅读有关 UNUserNotificationCenter 的 Apple 文档,但没有找到任何提及此选项的内容。

注意:这似乎与 UNNotificationAction 无关,因为它在长按通知时添加了选项。

@dan 是对的!

从 UNUserNotificationCenter 请求推送授权时,应添加 UNAuthorizationOptionProvidesAppNotificationSettings 作为选项。

var options: UNAuthorizationOptions = [.alert, .sound, .badge]
        
if #available(iOS 12.0, *) {
    options.insert(.providesAppNotificationSettings)
}

UNUserNotificationCenter.current().requestAuthorization(options: options) { 
    pushAuthStatus, _ in
    DispatchQueue.main.async {
        UIApplication.shared.registerForRemoteNotifications()
        completion(pushAuthStatus)
    }
}

那么你需要做的就是在UNUserNotificationCenterDelegate中添加下面的函数来处理当用户点击新添加的选项时发生的事情。

func userNotificationCenter(_: UNUserNotificationCenter, openSettingsFor _: UNNotification?) {
    // Route to settings view
}