我想在我的SwiftUI应用中使用本地通知,但是我需要首先获得用户的许可。但是,在Apple的文档中,我仅在应用程序首次打开时看到有关询问权限的信息。
我有一个设置顺序,当您首次打开该应用程序时,该顺序会指导用户设置其首选项,其中之一是通知。
到目前为止,我的设置是让用户在上一个屏幕(NotifPermissionScreen,请参阅下文)上按“继续”,然后进入空白屏幕,其中唯一需要询问的是通知首选项。之后,我想根据它们是否允许通知来加载不同的视图。
任何帮助将不胜感激! :)
我正在使用Xcode 11 beta 3,并且正在SwiftUI中制作我的应用。
struct NotifPermissionScreen : View {
var body: some View {
// Show notification preference message
if (notificationsAllowed) {
SetupScreen3()
} else {
SetupScreen4()
}
}
}
//注意:我不知道notificationsAllowed是否是一个真实的变量,但是这段代码代表了我要执行的操作的一般结构
答案 0 :(得分:0)
我最终弄清楚了!这是我所做的:
var body: some View {
if !hasPressedNotifButton {
Button(action: {
// Request permission to send notifications
self.center.requestAuthorization(options: [.alert, .sound])
{ (granted, error) in
// Hide this button by setting this @State variable to true
self.hasPressedNotificationsButton = true
if granted {
// Edit the user's data for later use
self.userData.wantsNotifications = true
}
}
}) {
Text("Set Notifications")
}
if self.userData.wantsNotifications {
WantsNotifsView()
} else {
NoNotifsView()
}
}
}
如果有人需要澄清其工作方式,请告诉我! :)