iOS 15:为通知启用“在应用程序中配置”选项

Posted

技术标签:

【中文标题】iOS 15:为通知启用“在应用程序中配置”选项【英文标题】:iOS 15: Enabling "Configure in App" option for notifications 【发布时间】:2021-11-25 21:37:13 【问题描述】:

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

我注意到,一些应用程序有一个额外的选项,可以让用户配置应用程序内通知设置。我在弄清楚如何启用此选项时遇到问题。

这是一个 Snapchat 的示例,它具有附加选项“在 Snapchat 中配置”

Screenshot of example

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

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

【问题讨论】:

不确定,但我认为这是通过在请求通知权限时提供UNAuthorizationOptionProvidesAppNotificationSettings 选项来完成的 【参考方案1】:

@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

【讨论】:

以上是关于iOS 15:为通知启用“在应用程序中配置”选项的主要内容,如果未能解决你的问题,请参考以下文章

实现细粒度启用/禁用推送通知

IOS锁屏通知

iOS 上的丰富通知

iOS - 根据切换值启用/禁用一组通知

如何在 iOS 中禁用/启用本地通知?

Flutter 应用程序 - 通知设置选项