【问题标题】:CLLocationManager authorization callbacks (when no auth-change)CLLocationManager 授权回调(当没有 auth-change 时)
【发布时间】:2021-10-02 13:55:12
【问题描述】:

我的应用需要始终授权。

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

于是弹出如下工作流程:

  1. 询问“WhenInUse”
  2. 询问“总是”

这里的问题:

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

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

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

(即像监控模态呈现的视图控制器)

提前致谢!

【问题讨论】:

    标签: ios cllocationmanager


    【解决方案1】:

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

    【讨论】:

    • 对不起。我无法确认此解决方案是否适用于 iOS 14.5 SDK。
    • (只允许编辑大约 5 分钟,所以这是我的编辑):这似乎不是系统提示。我测试了 UIApplicationWillEnterForegroundNotification 和 UIApplicationDidBecomeActiveNotification。没有任何效果。它是一个窗口、一个简单的视图或其他任何东西。
    • 我也试过 UIWindowDidResignKeyNotification 和 UIWindowDidBecomeKeyNotification。弹出窗口似乎没有窗口。我快要展示键盘了,希望键盘通知能正常工作......
    猜你喜欢
    • 1970-01-01
    • 2018-08-13
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2016-07-11
    相关资源
    最近更新 更多