ios - 如何打开/关闭 TestFlight 应用程序的定位服务?
问题描述
我开发了一个使用定位服务的 iPhone 应用程序。我将其上传到 TestFlight 并将其下载到 iPhone 设备上进行检查。
该应用程序在登录后要求位置许可。如果授予权限,它将正常工作。如果“拒绝”,它将显示一条消息,要求打开定位服务。
我“拒绝”了权限,关闭了应用程序并重新启动它,但似乎 iPhone 可以记住以前的位置设置。它没有再问我是否需要允许定位服务。这在模拟器中也发生过,所以我认为iOS就是这样。
由于我的应用程序在 TestFlight 中,我如何为此打开/关闭位置服务,所以现在我可以检查它如何与位置服务一起工作?
解决方案
正如你所说的,这就是 iOS 的工作方式。一旦用户拒绝了应用程序的定位服务,该应用程序就无法再次调用系统权限对话框。
如果您的应用程序想在启动时或需要使用位置服务并发现位置服务已关闭或其状态为 时发出自己的denied
警报,那很好。但这完全取决于您的应用程序。基本上,您是在请求用户前往设置并授权您的应用程序;您甚至可以在警报中包含一个按钮,用于切换到用户的设置,这是很常见的事情。
好的,那么测试您的应用程序呢?好吧,如果您只想知道在授予位置服务授权时您的应用程序是否正常工作,只需转到设置并授予它们,就像用户可能做的那样。
如果您想在没有授权状态(notDetermined
如果这还不够,您将必须完全重置权限(在“设置”中的“常规”>“重置”>“重置位置和隐私”下);这有点痛苦,因为它会重置所有权限,但有时这是让设备清除其缓存的唯一方法。
推荐阅读
- python - 检查文本文件是否为空
- webview - 在 uwp webview InvokeScriptAsync 中调用列表框更改
- angular - 无法将子组件显示到父组件中
- python - Python api 数据库连接如何工作?
- google-apps-script - 使用 Apps 脚本在 Gmail 中嵌入 Google 表单
- javascript - 在 Vuejs 中使用 v-for 和动态键
- sql - 来自绝对初学者的 SQL 查询问题
- android - AndroidJUnit4 应该有一个公共构造函数
- angularjs - 在父块中使用 ng-init 更改变量集
- python - 如何使用 zmq 套接字同时流式传输 4 个端口,同时跟踪它的来源?