
AppboyKit (também conhecido como o SDK Objective-C) não é mais suportado e foi substituído pelo Swift SDK. Não receberá mais novos recursos, correções de bugs, atualizações de segurança ou suporte técnico—no entanto, o envio de mensagens e a análise de dados continuarão a funcionar normalmente. Para saber mais, veja Apresentando o Novo SDK Braze Swift.
Localizações e geofences
Para oferecer suporte a geofences no iOS:
- Sua integração deve suportar notificações por push em segundo plano.
- É preciso ativar as geofences da Braze pelo SDK, seja implicitamente (com a ativação da coleta de localização) ou explicitamente (com a ativação da coleta de geofence). Elas não estão ativadas por padrão.

A partir do iOS 14, as geofences não funcionam de forma confiável para os usuários que optam por conceder permissão de localização aproximada.
Etapa 1: Ativar push em segundo plano
Para utilizar totalmente nossa estratégia de sincronização de geofences, você deve ter o push em segundo plano ativado, além de concluir a integração padrão de push.
Etapa 2: Ativar geofences
Por padrão, as geofences são ativadas com base na ativação ou não da coleta automática de localização. Você pode ativar geofences usando o arquivo Info.plist. Adicione o dicionário Braze ao seu arquivo Info.plist. Dentro do dicionário Braze, adicione a subentrada booleana EnableGeofences e defina o valor como YES. Observe que, antes do Braze iOS SDK v4.0.2, a chave de dicionário Appboy deve ser usada no lugar de Braze.
Você também pode ativar geofences no momento da inicialização do app usando o método startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions. No dicionário appboyOptions, defina ABKEnableGeofencesKey como YES. Por exemplo:
[Appboy startWithApiKey:@"YOUR-API_KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKEnableGeofencesKey : @(YES) }];
Appboy.start(withApiKey: "YOUR-API-KEY",
in:application,
withLaunchOptions:launchOptions,
withAppboyOptions:[ ABKEnableGeofencesKey : true ])
Etapa 3: Verificar o push em segundo plano da Braze
A Braze sincroniza geofences com os dispositivos usando notificações por push em segundo plano. Siga o artigo de personalização do iOS para garantir que seu aplicativo não execute nenhuma ação indesejada ao receber notificações de sincronização de geofences da Braze.
Etapa 4: Adicionar NSLocationAlwaysUsageDescription ao seu Info.plist
Adicione as chaves NSLocationAlwaysUsageDescription e NSLocationAlwaysAndWhenInUseUsageDescription ao seu info.plist com um valor String que contenha uma descrição do motivo pelo qual seu aplicativo precisa rastrear a localização. Ambas as chaves são exigidas pelo iOS 11 ou posterior.
Essa descrição será exibida quando o prompt de localização do sistema solicitar autorização e deve explicar claramente os benefícios do monitoramento de localização para seus usuários.
Etapa 5: Solicitar autorização do usuário
O recurso de geofences só funciona quando a autorização de localização Always é concedida.
Para solicitar a autorização de localização Always, use o seguinte código:
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];
var locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
Etapa 6: Ativar geofences no dashboard
O iOS permite que apenas até 20 geofences sejam armazenadas para um determinado app. O uso de localizações consumirá alguns desses 20 slots de geofence disponíveis. Para evitar interrupções acidentais ou indesejadas em outras funcionalidades relacionadas a geofences no seu app, as geofences de localização devem ser ativadas para apps individuais no dashboard.
Para que as localizações funcionem corretamente, você também deve confirmar que seu app não está usando todos os slots de geofence disponíveis.
Ativar geofences na página de localizações:

Ativar geofences na página de configurações:

Desativando solicitações automáticas de geofences
A partir da versão 3.21.3 do SDK para iOS, você pode desativar a solicitação automática de geofences. Para isso, utilize o arquivo Info.plist. Adicione o dicionário Braze ao seu arquivo Info.plist. Dentro do dicionário Braze, adicione a subentrada booleana DisableAutomaticGeofenceRequests e defina o valor como YES.
Você também pode desativar as solicitações automáticas de geofences no momento da inicialização do app por meio do método startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions. No dicionário appboyOptions, defina ABKDisableAutomaticGeofenceRequestsKey como YES. Por exemplo:
[Appboy startWithApiKey:@"YOUR-API_KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKDisableAutomaticGeofenceRequestsKey : @(YES) }];
Appboy.start(withApiKey: "YOUR-API-KEY",
in:application,
withLaunchOptions:launchOptions,
withAppboyOptions:[ ABKDisableAutomaticGeofenceRequestsKey : true ])
Se você optar por usar essa opção, será necessário solicitar geofences manualmente para que o recurso funcione.
Solicitação manual de geofences
Quando o SDK da Braze solicita geofences para monitorar a partir do backend, ele informa a localização atual do usuário e recebe geofences consideradas otimamente relevantes com base na localização informada. Há um limite de frequência de uma atualização de geofence por sessão.
Para controlar a localização que o SDK informa para fins de receber as geofences mais relevantes, a partir da versão 3.21.3 do SDK para iOS, você pode solicitar geofences manualmente fornecendo a latitude e a longitude de um local. É recomendável desativar as solicitações automáticas de geofence ao usar esse método. Para isso, use o seguinte código:
[[Appboy sharedInstance] requestGeofencesWithLongitude:longitude
latitude:latitude];
Appboy.sharedInstance()?.requestGeofences(withLongitude: longitude, latitude: latitude)