【发布时间】:2019-05-30 18:59:40
【问题描述】:
在我的应用中,此警报会显示多次。 类似问题:iOS: Why does "Turn on Location Services" alert show twice upon startup?.
如何识别iOS何时提示“开启定位服务”提醒?
在 Google 地图应用中看到两个警报的场景。
- 关闭设备的定位服务
- 从 AppStore 安装 Google 地图应用程序。 (如果您的设备已经有 Google 地图应用。从设备上卸载现有应用,然后从 AppStore 安装该应用)
- 启动应用程序
- 将显示提及的警报
- 点击“取消”
- 退出应用
- 再次启动应用程序
- 提及的警报将再次显示。
另一种情况是在 Google 地图应用中看到两个以上的警报。
- 关闭设备的定位服务
- 从 AppStore 安装 Google 地图应用程序。 (如果您的设备已经有谷歌地图应用程序。从设备上卸载现有应用程序并从 AppStore 安装该应用程序)
- 启动应用程序
- 将显示提及的警报
- 锁定屏幕
- 等待 20 秒(如果您的设备有更多 RAM,您可能需要等待额外的时间)
- 解锁屏幕并立即退出应用程序(如果无法及时退出应用程序,请从第 5 步开始重复)
- 再次启动应用程序
- 将显示提及的警报
- 从第 5 步开始重复,一次又一次地查看提到的警报。
【问题讨论】:
-
这有什么问题吗?您是否随时提示警报?如果是,那么您想在应用程序生命周期内显示一次此警报吗?
-
如果您没有提示警报并退出应用程序,它会再次显示警报,这是一个好方法吗?如果您确实想在应用程序的生命周期中显示一次,则将一些首选项值存储在应用程序内存中。
-
@AbuUlHassan 根据我的客户要求,我开发了一个具有相同功能的警报。并且每当在“func locationManager(_ manager:CLLocationManager,didChangeAuthorization status:CLAuthorizationStatus)”委托中给出的状态为“拒绝”或“受限”时,它都会显示。所以我想避免每当操作系统在问题中显示提到的警报时我开发的警报。
-
我认为缺点在于您的代码,为什么不发布检查并询问位置请求管理的代码。
-
@AbuUlHassan 对不起,我不明白你的意思。你能说得更清楚一点吗?
标签: ios cllocationmanager