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

MDM GeoBehavior

Módulo responsável pelo monitoramento da localização geográfica do usuário. Este módulo roda em background e fica monitorando os lugares visitados pelos usuários.

Para inicializar a geolocalização, a aplicação precisa obter a permissão do usuário conforme passos abaixo:

1. Adicione a chave NSLocation no Info.plist do aplicativo:

<?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>O aplicativo $(EXECUTABLE_NAME) usará a localização para otimizar a sua experiência.</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>O aplicativo $(EXECUTABLE_NAME) usará a localização para otimizar a sua experiência.</string>
    <key>NSMotionUsageDescription</key>
    <string>O aplicativo $(EXECUTABLE_NAME) usará seus movimentos para otimizar a sua experiência.</string>
</dict>
</plist>

 

2. Ative o acesso as informações de WiFi em Capabilities Access WiFi Information:

 

3. Em seguida, ative Location updates em Capabilities:

 

4. Em seu AppDelegate, no método applicationDidBecomeActive, após permissão para fazer Tracking, solicite ao usuário permissão para sua aplicação usar geolocalização.

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

 

5. Implemente o método locationManagerDidChangeAuthorization do delegate CLLocationManagerDelegate em seu AppDelegate. Assim que concedida a permissão do usuário, validar a permissão concedida. Caso for para somente uso do App, requisitar para usar sempre, caso contrário, chamar a inicialização do módulo GeoBehavior:

switch manager.authorizationStatus {
case .authorizedWhenInUse:
    manager.requestAlwaysAuthorization()
default:
    break
}
MDMCore.start(withAppId: "SEU_APP_ID", kitModules: [MDMGeoBehavior.self()])

 


Opt-out

Para fazer o opt-out do módulo, basta chamar o seguinte comando:

MDMGeoBehavior.setOptOut(true)

 

Para desfazer o opt-out do módulo, basta chamar o seguinte comando:

MDMGeoBehavior.setOptOut(false)