检测在 SwiftUI 中点击的系统警报按钮

Posted

技术标签:

【中文标题】检测在 SwiftUI 中点击的系统警报按钮【英文标题】:Detecting system alert button tapped in SwiftUI 【发布时间】:2021-09-16 21:42:27 【问题描述】:

在 SwiftUI 中,我想检测用户是否在推送通知系统警报中按下了“允许”按钮。如何检测警报中按下了哪个按钮?

【问题讨论】:

您能否详细说明为什么您需要具体了解哪个按钮被点击了?您不能只是查看权限本身是否在之后被授予? 你说的是哪种系统警报?具体是什么? 我的意思是推送通知警报以获得用户许可。 我想根据用户的决定更新 UI,这就是为什么我想知道点击了哪个按钮。 【参考方案1】:

您可以从UNUserNotificationCenter 调用getNotificationSettings 以获取当前设置。

在您显示系统警报后,在计时器上反复调用此功能,以了解用户是接受还是拒绝。

苹果文档: UNUserNotificationCenter getNotificationSettings

【讨论】:

【参考方案2】:

此代码块帮助我检测按下了哪个按钮

UNUserNotificationCenter.current.requestAuthorization(options: [.badge, .alert, .sound])  granted, _ in 

【讨论】:

以上是关于检测在 SwiftUI 中点击的系统警报按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有按钮的 SwiftUI 中显示警报

SwiftUI 和 macOS:如何检测关闭的最后一个窗口并显示应用程序将退出的警报

SwiftUI 在 NavigationView 中添加个人警报视图,后退按钮不适用于 Xcode 12 iOS14

SwiftUI同一按钮的多个警报[重复]

如何通过 SwiftUI 按钮在 UIViewController 中执行功能?

使用 MVVM 在 SwiftUI 中显示警报