1. Hands MDM SDK
  2. iOS Quickstart
  3. MDM Módulos
  4. MDM GeoBehavior

MDM GeoBehavior

Módulo responsable del monitoreo de la ubicación geográfica del usuario. Este módulo se ejecuta en segundo plano y supervisa los lugares visitados por los usuarios.

Para inicializar la geolocalización, la aplicación debe obtener el permiso del usuario, como se muestra en los siguientes pasos:

1. Agregue la clave NSLocation en Info.plist de la aplicación:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>La aplicación $(EXECUTABLE_NAME) utilizará la ubicación para optimizar su experiencia.</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>La aplicación $(EXECUTABLE_NAME) utilizará la ubicación para optimizar su experiencia.</string>
    <key>NSMotionUsageDescription</key>
    <string>La aplicación $(EXECUTABLE_NAME) utilizará tus movimientos para optimizar tu experiencia.</string>
</dict>
</plist>

 

2. Habilite el acceso a la información WiFi en Capabilities Access WiFi Information:

 

3. Entonces activa Location updates en Capabilities:

 

4. En su AppDelegate, en el método applicationDidBecomeActive, después de comenzar el módulo, después del permiso para hacer seguimiento, solicite permiso al usuario para que su aplicación use la geolocalización.

Task {
    if await ATTrackingManager.requestTrackingAuthorization() == .authorized {
        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()
    }
}

 

5. Implemente el método locationManagerDidChangeAuthorization del delegado CLLocationManagerDelegate en su AppDelegate. Una vez concedido el permiso al usuario, valide el permiso concedido. Si es solo para uso de la aplicación, solicita su uso siempre, de lo contrario, llama a la inicialización del módulo GeoBehavior:

switch manager.authorizationStatus {
case .authorizedWhenInUse:
    manager.requestAlwaysAuthorization()
default:
    break
}
MDMGeoBehavior.start()

 


Opt-out

Para optar por no participar en el módulo, simplemente llame al siguiente comando:

MDMGeoBehavior.setOptOut(true)

 

Para cancelar la opción del módulo, simplemente llame al siguiente comando:

MDMGeoBehavior.setOptOut(false)