ios - 处理内置 iOS 权限对话框

标签 ios cocoa-touch dialog ios-permissions

第一次加载我的 View Controller 时,系统会提示用户使用内置的 iOS 权限消息:“允许“appName”在您使用该应用程序时访问您的位置?”

有没有一种方法可以让我暂停应用程序,直到用户选择“不允许”或“允许”?

在用户选择允许或不允许后,我可以通过检查值来处理它,如下所示:

//INSIDE OF ViewDidAppear

if(authstate != CLAuthorizationStatus.Denied)
{
 // do something
}
else if (authstate == CLAuthorizationStatus.AuthorizedWhenInUse)
{
  // do something
}

现在,即使 iOS 权限对话框仍在屏幕上显示,代码也会逐步执行 if 语句。因此,我想暂停它,直到用户选择允许或不允许。然后在用户选择允许或不允许后,继续执行 if 语句

最佳答案

没有。权限请求异步发生。你必须实现 CLLocationManagerDelegate 的方法

func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
  // check the status
}

在用户回答权限对话框后调用。

关于ios - 处理内置 iOS 权限对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33926513/

相关文章:

iphone - 在没有 CATiledLayer 的情况下在 iOS 上呈现和缩放大图像

objective-c - 两个childViewController之间的通信

android - 无法添加窗口错误

ios - 在单个设备上安装 iOS 应用程序,无需开发者程序

ios - 带有 Crashlytics 的 ios 应用程序是否使用广告标识符 (IDFA)?

iPhone:键盘挡住屏幕

iphone - 如何知道 StoreKit In App Purchases 导致了 applicationWillResignActive?

ios - SDWebImage 急切加载图像

python - 在 Blender 中创建错误对话框

java - SelectionListener 中的 JFace 关闭对话框