我的应用程序的核心功能是在后台模式下更新位置数据。在 iOS 13 中,当我们调用 时locationManager.requestAlwaysAuthorization(),系统会要求用户在变体'Never'、'Permit Once'和 中进行选择'When in use'。
如果用户授予'When in use'访问权限,我们的应用程序将只能在前台工作。
我无法理解的是:有时当应用程序进入后台并在一段时间后变为活动状态并再次进入后台时,iOS 13 会要求用户将位置访问权限更改为 'Always'

我的应用程序应该怎么做才能使 iOS 13 向用户显示此对话框?(我想这样做,当我的应用程序第一次进入后台时)
PS 我知道,我可以使用一些带有文本的自定义警报,例如“请转到系统设置并将此应用的位置访问权限调整为‘始终’模式”。但我需要知道,有没有办法使用上述“本机系统流程”?
谢谢!
// it compiles without any problems, regardless ModifiedContent is not a View
func modify(with viewModifier: some ViewModifier) -> some View {
let content: ModifiedContent<Self, some ViewModifier> = modifier(viewModifier)
return content
}
Run Code Online (Sandbox Code Playgroud)
但如果我们以通用方式编写相同的内容,我们会收到预期的错误消息
func modify<V>(with viewModifier: some ViewModifier) -> V where V : View {
let content: ModifiedContent<Self, some ViewModifier> = modifier(viewModifier)
return content // error: Cannot convert return expression of type
// 'ModifiedContent<Self, some ViewModifier>' to return type 'V'
}
Run Code Online (Sandbox Code Playgroud)