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.
Integração do push primer
Campanhas de push primer incentivam os usuários a ativar os pushes do seu app nos dispositivos deles. Obter a permissão dos usuários para enviar mensagens diretamente para seus dispositivos pode ser complexo, mas nossos guias podem ajudar! Este guia mostra as etapas que os desenvolvedores devem seguir para integrar push primers.
Etapa 1: Adicionar snippet no arquivo AppDelegate.m
Adicione a seguinte linha de código ao seu arquivo AppDelegate.m no lugar da integração padrão:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
if (@available(iOS 10.0, *)) {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
if (settings.authorizationStatus != UNAuthorizationStatusNotDetermined) {
// authorization has already been requested, need to follow usual steps
[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error) {
[[Appboy sharedInstance] pushAuthorizationFromUserNotificationCenter:granted];
}];
center.delegate = self;
[center setNotificationCategories:[ABKPushUtils getAppboyUNNotificationCategorySet]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
} else {
UIApplication *sharedApplication = [UIApplication sharedApplication];
UIUserNotificationSettings *notificationSettings = [sharedApplication currentUserNotificationSettings];
if (notificationSettings.types) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:[ABKPushUtils getAppboyUIUserNotificationCategorySet]];
[sharedApplication registerUserNotificationSettings:settings];
[sharedApplication registerForRemoteNotifications];
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if #available(iOS 10, *) {
let center = UNUserNotificationCenter.current()
center.getNotificationSettings(completionHandler: { (settings) in
if settings.authorizationStatus != .notDetermined {
// authorization has already been requested, need to follow usual steps
center.requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
Appboy.sharedInstance()?.pushAuthorization(fromUserNotificationCenter: granted)
}
center.delegate = self as? UNUserNotificationCenterDelegate
center.setNotificationCategories(ABKPushUtils.getAppboyUNNotificationCategorySet())
UIApplication.shared.registerForRemoteNotifications()
}
})
} else {
let notificationSettiings = UIApplication.shared.currentUserNotificationSettings
if notificationSettiings?.types != nil {
let setting = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories:nil)
UIApplication.shared.registerUserNotificationSettings(setting)
UIApplication.shared.registerForRemoteNotifications()
}
}
Etapa 2: Anexar o verificador de eventos personalizado ao arquivo AppDelegate.m
O seguinte trecho de código verifica se um evento personalizado precisa ser disparado. Adicione a seguinte linha de código em seu site AppDelegate.m.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (@available(iOS 10.0, *)) {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
if (settings.authorizationStatus == UNAuthorizationStatusNotDetermined) {
// ...
// fire custom event
// ...
}
}];
} else {
UIUserNotificationSettings *notificationSettings = [[UIApplication sharedApplication] currentUserNotificationSettings];
if (!notificationSettings.types) {
// …
// fire custom event
// ...
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if #available(iOS 10, *) {
let center = UNUserNotificationCenter.current()
center.getNotificationSettings(completionHandler: { (settings) in
if settings.authorizationStatus == .notDetermined {
// ...
// fire custom event
// ...
}
})
} else {
let notificationSettiings = UIApplication.shared.currentUserNotificationSettings
if notificationSettiings?.types != nil {
// ...
// fire custom event
// ...
}
}
Etapa 3: Configurar um manipulador de deep links
Coloque o seguinte trecho de código em seu código de manipulação de deep links. Você só deve executar esse código de deep link para a mensagem no app do seu push primer.
Para saber mais sobre deep links, consulte a personalização do manuseio de links.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// ...
// check that this deep link relates to the push prompt
// ...
if (@available(iOS 10.0, *)) {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error) {
[[Appboy sharedInstance] pushAuthorizationFromUserNotificationCenter:granted];
}];
center.delegate = self;
[center setNotificationCategories:[ABKPushUtils getAppboyUNNotificationCategorySet]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:[ABKPushUtils getAppboyUIUserNotificationCategorySet]];
UIApplication *sharedApplication = [UIApplication sharedApplication];
[sharedApplication registerUserNotificationSettings:settings];
[sharedApplication registerForRemoteNotifications];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ...
// check that this deep link relates to the push prompt
// ...
if #available(iOS 10, *) {
let center = UNUserNotificationCenter.current()
center.delegate = self as? UNUserNotificationCenterDelegate
center.requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
Appboy.sharedInstance()?.pushAuthorization(fromUserNotificationCenter: granted)
}
UIApplication.shared.registerForRemoteNotifications()
} else {
let setting = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories:nil)
UIApplication.shared.registerUserNotificationSettings(setting)
UIApplication.shared.registerForRemoteNotifications()
}
Editar esta página no GitHub