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.
Ignorar notificações push internas do Braze
A Braze usa notificações por push silenciosas para a implementação interna de determinados recursos avançados. Para a maioria das integrações, isso não requer alterações em nome do seu app. No entanto, se você integrar um recurso do Braze que dependa de notificações por push internas (por exemplo, rastreamento de desinstalação ou geofences), convém atualizar seu app para ignorar nossos pushes internos.
Se o seu app executa ações automáticas em inicializações de aplicativos ou push em segundo plano, considere a possibilidade de bloquear essa atividade para que ela não seja disparada por notificações por push internas. Por exemplo, se você tem uma lógica que chama seus servidores para obter novo conteúdo a cada push em segundo plano ou lançamento de aplicativo, provavelmente não gostaria que nossos pushes internos disparassem isso, pois haveria tráfego de rede desnecessário. Além disso, como o Braze envia certos tipos de pushes internos para todos os usuários aproximadamente ao mesmo tempo, não bloquear as chamadas de rede no lançamento de pushes internos poderia introduzir uma carga significativa no servidor.
Verificação de ações automáticas em seu app
Você deve verificar se há ações automáticas em seu aplicativo nos seguintes locais e atualizar seu código para ignorar nossos pushes internos:
- Receptores push. As notificações por push em segundo plano chamarão
application:didReceiveRemoteNotification:fetchCompletionHandler:no siteUIApplicationDelegate. - Delegado do app. Os push em segundo plano podem iniciar apps suspensos em segundo plano, disparando os métodos
application:willFinishLaunchingWithOptions:eapplication:didFinishLaunchingWithOptions:em seuUIApplicationDelegate. Você pode verificar o sitelaunchOptionsdesses métodos para determinar se o aplicativo foi iniciado a partir de um push em segundo plano.
Uso de métodos utilitários push internos do Braze
Você pode usar os métodos utilitários em ABKPushUtils para verificar se o seu app recebeu ou foi iniciado por uma notificação por push interna do Braze. isAppboyInternalRemoteNotification: retornará YES em todas as notificações por push internas do Braze, enquanto isUninstallTrackingRemoteNotification: e isGeofencesSyncRemoteNotification: retornarão YES para rastreamento de desinstalação e notificações de sincronização de geofences, respectivamente. Consulte ABKPushUtils.h para declarações de métodos.
Exemplo de implementação
1
2
3
4
5
6
7
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary *pushDictionary = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
BOOL launchedFromAppboyInternalPush = pushDictionary && [ABKPushUtils isAppboyInternalRemoteNotification:pushDictionary];
if (!launchedFromAppboyInternalPush) {
// ... Gated logic here (such as pinging your server to download content) ...
}
}
1
2
3
4
5
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
if (![ABKPushUtils isAppboyInternalRemoteNotification:userInfo]) {
// ... Gated logic here (such as pinging server for content) ...
}
}
1
2
3
4
5
6
7
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
let pushDictionary = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? NSDictionary as? [AnyHashable : Any] ?? [:]
let launchedFromAppboyInternalPush = ABKPushUtils.isAppboyInternalRemoteNotification(pushDictionary)
if (!launchedFromAppboyInternalPush) {
// ... Gated logic here (such as pinging your server to download content) ...
}
}
1
2
3
4
5
6
7
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if (!ABKPushUtils.isAppboyInternalRemoteNotification(userInfo)) {
// ... Gated logic here (such as pinging server for content) ...
}
}
Editar esta página no GitHub