CLLocationManager 授权回调当没有 auth-change 时

问题描述

我的应用需要始终授权。

Apple 声明,如果应用程序已经拥有“WhenInUse”授权,它可能只要求一次“Always”。

于是弹出以下工作流程:

  1. 询问“WhenInUse”
  2. 要求“始终”

这里的问题:

(在 1 上): 如果用户选择“允许一次”,我会在内部得到“WhenInUse”。该应用程序不会被告知“仅允许一次”。第 2 步无声地失败 - 没有任何回调或错误

(在 2 上): 如果用户选择“仅在使用时保留”,则根本不会调用回调。

有人知道这种行为的解决方法吗?

(例如监控模态呈现的视图控制器)

提前致谢!

解决方法

由于应用程序在显示系统提示时变为非活动状态,而不是等待回调,您可以将授权状态存储在 UserDefaults 或任何其他持久存储中,并且每当应用程序变为活动状态时再次检查状态并查看是否已更改。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...