UIAlertView就像“打开位置服务以允许地图确定您的位置”。设置+取消

时间:2010-09-24 06:15:35

标签: iphone permissions settings uialertview cllocationmanager

我想发出此警报:

Turn On Location Services to allow maps to determine your location

我需要“设置”和“取消”,就像“地图”应用程序一样。

“设置”应该打开设置 - > general->位置服务

我没有找到打开设置页面的方法。

你能帮助我吗?

由于

7 个答案:

答案 0 :(得分:14)

创建警报非常简单,它只是一个(仿)模式UIView。

然而,不可能以编程方式打开“设置”应用,至少在没有使用会阻止您的应用被批准用于App Store的私有方法的情况下。

答案 1 :(得分:6)

这是不可能自己完成的。但是,如果您的应用程序需要访问位置服务,操作系统将为您显示如下对话框。

编辑:下面提到的Brant“可以通过在CLLocationManager上设置目的属性的值来自定义消息。”

alt text

答案 2 :(得分:6)

您无法打开常规,Locatios等特定设置页面,但您可以在iOS 8中打开设置页面。

  - (void)openSettings
  {
      BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
      if (canOpenSettings)
      {
          NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
          [[UIApplication sharedApplication] openURL:url];
      }
  }

答案 3 :(得分:3)

Swift 2.0版本:

func showLocationSettingAlert() {
    let alertController = UIAlertController(
        title:  "Location Access Disabled",
        message: "Location settings",
        preferredStyle: .Alert)

    let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
    alertController.addAction(cancelAction)

    let openAction = UIAlertAction(title: "Open Settings", style: .Default) { (action) in
        if let url = NSURL(string:UIApplicationOpenSettingsURLString) {
            UIApplication.sharedApplication().openURL(url)
        }
    }
    alertController.addAction(openAction)
    self.presentViewController(alertController, animated: true, completion: nil)
}

答案 4 :(得分:2)

此时无法以编程方式打开设置窗格。请参阅here

答案 5 :(得分:2)

这不是你添加的东西。当应用程序想要使用位置服务但是在设置中关闭时,会出现该屏幕。

推送通知也会发生同样的事情。

答案 6 :(得分:1)

其他人如说,如果您想在App Store上安装应用,则无法以编程方式打开“设置”应用 如果应用程序支持并使用定位服务等已确定的功能,则会在启动应用时自动“生成”此弹出窗口 您可以在参考库中找到有关此服务的更多信息:https://developer.apple.com/library/ios/navigation/#section=Frameworks&topic=CoreLocation