2010-09-24 10 views
11

I Want para emitir esta alerta:UIAlertView como "Activar los servicios de ubicación para permitir que los mapas determinen su ubicación". Ajustes + anular

Turn On Location Services to allow maps to determine your location 

necesito tanto "Configuración" y "Cancelar" exactamente igual que los "mapas" de la aplicación.

"Configuración" debe abrir Preferencias-> General-> servicios de localización

no he encontrado la manera de abrir la página de configuración.

¿Me puede ayudar?

Gracias

+0

Cualquier persona encontraron una manera de hacer esto? – kape123

+0

Esta pregunta tiene la respuesta correcta http://stackoverflow.com/questions/9092142/ios-uialertview-button-to-go-to-setting-app –

Respuesta

14

crear la alerta es bastante sencillo, que es sólo una (faux-) UIView modal.

Sin embargo, no es posible para abrir la aplicación de configuración mediante programación, al menos no sin utilizar métodos privados que impidan que su aplicación sea aprobada para la tienda de aplicaciones.

2

No es posible abrir el panel de configuración mediante programación en este momento. Consulte here.

2

No es algo que agregue. Esa pantalla aparece cuando las aplicaciones quieren usar los servicios de ubicación, pero está desactivada en la configuración.

Lo mismo sucede con las notificaciones automáticas.

6

Esto no es posible de lograr por su cuenta. Sin embargo, si su aplicación necesita acceder a servicios de ubicación, el sistema operativo presentará un diálogo como este para usted, como se ve a continuación.

Editar: Brant mencionó a continuación que "el mensaje se puede personalizar estableciendo el valor de la propiedad de propósito en su CLLocationManager".

alt text

+0

Este es un mensaje de alerta personalizado. De lo contrario, ¿cómo sabe iOS que 'encuentra y graba cosas cerca'? ¿Te preguntas cómo personalizar el mensaje? – wanghq

+2

@wanghq: El mensaje puede personalizarse configurando el valor de la propiedad 'purpose' en su' CLLocationManager'. –

+2

'purpose' está en desuso en iOS 6.0 - http://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/DeprecationAppendix/AppendixADeprecatedAPI.html # // apple_ref/occ/instp/CLLocationManager/purpose – user427969

1

Cómo funciona otro dicho, no se puede abrir la aplicación de configuración mediante programación si desea que su aplicación en la App Store.
Esta ventana emergente se "genera automáticamente" al iniciar su aplicación si es compatible y utiliza funciones determinadas, como el Servicio de localización.
usted puede encontrar más información acerca de este servicio en la Biblioteca de Referencia: https://developer.apple.com/library/ios/navigation/#section=Frameworks&topic=CoreLocation

5

No se puede abrir la página de configuración específica como general, Locatios etc., pero se puede abrir la configuración de la página en iOS 8.

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

Swift versión 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) 
} 
Cuestiones relacionadas