我正在Swift/SwiftUI中开发一个应用程序,它需要日历访问,并在用户在设置过程中按下按钮时请求此访问。然而,当用户按下按钮以给予访问时,预期的警报显示,但应用程序在后台继续到下一个屏幕。应用程序应保持在同一屏幕上,并在必要时转到错误页面。
这就是我目前为止所尝试的。任何帮助,你可以给予将不胜感激!谢谢!
func getAccess() async {
eventStore.requestAccess(to: .event) { granted, error in
}
}
下面的代码包含在按钮中。
Task {
await getAccess()
let authStatus = EKEventStore.authorizationStatus(for: .event)
if authStatus != .authorized {
withAnimation {
step = step + 1
}
} else {
withAnimation {
step = step + 2
}
}
}
1条答案
按热度按时间bxgwgixi1#
对于iOS 16及以下版本,您可以转换旧的
使用
CheckedContinuation<T, Error>
那么你可以用
关于iOS 17+
'requestAccess(to:completion:)'在iOS 17.0中已弃用:使用-requestFullAccessToEvents、-requestWriteOnlyAccessToEvents:或-requestFullAccessToReminders:
并发性内置于新方法中。