检测在 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 和 macOS:如何检测关闭的最后一个窗口并显示应用程序将退出的警报
SwiftUI 在 NavigationView 中添加个人警报视图,后退按钮不适用于 Xcode 12 iOS14