Pular para o conteúdo

Criar push interativo no iOS

O iOS 8 introduziu notificações interativas, permitindo que os usuários realizem ações diretamente do banner de notificação. A Pushwoosh agora oferece Categorias iOS, permitindo que você crie botões personalizados no Painel de Controle da Pushwoosh. Saiba mais

Quando seu aplicativo chama registerDevice, a API da Pushwoosh retorna a resposta que contém uma lista de Categorias disponíveis com seus IDs e detalhes para cada botão, da seguinte forma:

{
"status_code": 200,
"status_message": "OK",
"response": {
"iosCategories": [
{
"categoryId": 65,
"buttons": [
{
"id": 0,
"label": "Rate",
"type": "1",
"startApplication": 1
},
{
"id": 1,
"label": "Later",
"type": "0",
"startApplication": 0
}
]
}
]
}
}

Essas Categorias agora estão disponíveis no dispositivo, para que possam ser exibidas corretamente quando uma mensagem chega e seu aplicativo não está em execução em primeiro plano.

Para enviar seu push com uma categoria da Jornada Pushwoosh, basta selecioná-la nas configurações da plataforma iOS ao compor sua mensagem. Caso você esteja enviando seus pushes remotamente através da API da Pushwoosh, nas solicitações createMessage, você deve usar o parâmetro ios_category com o ID da Categoria correspondente como valor:

{
"categoryId": 65 // Opcional. Valor de string. ID da categoria do iOS8 da Pushwoosh
}

Quando uma mensagem push contendo um ID de categoria chega, o SDK da Pushwoosh exibe a notificação com um conjunto de botões que essa categoria contém.

Botões e ações no SDK do Pushwoosh para iOS

Anchor link to

Para realizar várias ações ao abrir um aplicativo, você deve criar uma implementação personalizada de UNUserNotificationCenterDelegate e sobrescrever seu método didReceiveNotificationResponse:

CustomDelegate

Anchor link to
class CustomDelegate: NSObject, UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let identifier = response.actionIdentifier
let category = response.notification.request.content.categoryIdentifier
if category == "10212" {
if identifier == "1" {
// FAÇA ALGO
} else {
// FAÇA OUTRA COISA
}
}
completionHandler()
}
}

Onde identifier é um ID de botão, e category é derivado do payload da notificação.

Em seguida, crie uma instância desta classe e passe-a para o SDK da Pushwoosh usando o método proxy:

AppDelegate

Anchor link to
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Pushwoosh.sharedInstance().registerForPushNotifications()
let customDelegate = CustomDelegate()
Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(customDelegate)
return true
}
Notificação push interativa do iOS com botões de ação personalizados exibidos no banner de notificação