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 toPara 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 toclass 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 tofunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { Pushwoosh.sharedInstance().registerForPushNotifications()
let customDelegate = CustomDelegate() Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(customDelegate)
return true}