我希望在启动时向用户请求通知权限,而不强制用户单击特定按钮。Xcode 14.2
我的申请结构:
import SwiftUI
import UserNotifications
@main
struct RSApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
现在我应该在哪里添加这段代码来请求权限呢?
center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if let error = error {
// Handle the error here.
}
// Enable or disable features based on the authorization.
}
(from https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications)
我知道我可以将其作为函数调用添加到按钮,但我希望用户无需单击任何内容即可请求访问,因此基本上是在视图初始化时。
2条答案
按热度按时间mw3dktmi1#
这很简单:
t2a7ltrp2#
在您的情况下,您正在修改应用程序根视图。因此,您可以将您的代码放入
init
或onAppear
。我建议使用后者(onAppear
)只是为了遵循最佳实践。SwiftUI立即创建所有视图,甚至导航链接的目标视图,这意味着初始化器会立即运行。而放在onAppear
修饰符中的代码只有在视图显示时才被调用。所以你的代码看起来像这样: