Configuração de notificações por push no seu iOS aplicação
Além das tarefas que você deve executar no ServiceNow instância para configurar uma notificação por push, você também deve incluir um código específico em iOS aplicação.
Crie o NowSDK NowPushService
Uma das primeiras coisas que precisa ser feito em sua aplicação é criar um NowPushService . . NowPush O SDK fornece uma função de fábrica para criar este serviço. Adicione um código semelhante ao snippet a seguir antecipadamente no corpo do código principal.
func setup(with instanceURL: URL) -> AnyPublisher<NowService, ConfigurationError> {
NowPush.makePushService(instanceUrl: instanceURL)
.mapError { .sdkError($0) }
.map { $0 as NowService }
.eraseToAnyPublisher()
}
Para obter informações adicionais sobre NowPush.makePushService() método, consulte NowPush API - iOS.
Registre o token de push
Apple fornece um token de notificação por push exclusivo que identifica o dispositivo e a aplicação para receber notificações por push. Para que uma aplicação receba notificação por push, você deve registrar este token usando NowPushService . Adicione uma função semelhante ao snippet de código a seguir em seu iOS aplicação. Esta aplicação deve ser registrada com seu ServiceNow instância.
func registerForPushNotifications(deviceToken: Data) {
pushService.registerPushToken(deviceToken,
pushAppName: "TestPushApp", // Modify this to be your iOS application name
environment: environment) { [weak self] result in
guard let self = self else { return }
switch result {
case .success:
UserDefaults.standard.set(true, forKey: "pushNotificationsRegistered")
self.pushRegistrationState = .registrationSuccess
case .failure:
UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
self.pushRegistrationState = .registrationFailed
}
}
}
Para obter informações adicionais sobre RegisterPushToken() método, consulte NowPushService - registerPushToken(_token: Dados, pushAppName: Cadeia de caracteres, ambiente: NowPushEnvironment, conclusão: Escape (<Data, NowPushError>) -> Vazio).
Cancele o registro do token de push
Você precisa cancelar o registro de um token de push sempre que o usuário sair da aplicação, como quando o usuário faz logout. Use um código semelhante ao snippet de código a seguir para cancelar o registro de um token de push. Certifique-se de mudar pushAppNamepara o nome do seu iOS aplicação.
func unregisterFromPushNotifications(deviceToken: Data) {
pushService.unregisterPushToken(deviceToken, pushAppName: "TestPushApp", environment: environment) { [weak self] result in
guard let self = self else { return }
switch result {
case .success:
UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
self.pushRegistrationState = .unregisterSuccess
case .failure:
self.pushRegistrationState = .unregisterFailed
}
}
}
Para obter informações adicionais sobre UnregisterPushToken() método, consulte NowPushService - unregisterPushToken(_token: Data, pushAppName: Cadeia de caracteres, ambiente: NowPushEnvironment, conclusão: Escape (<Data, NowPushError>) -> Vazio).
Analise a carga de envio
Você precisará analisar as cargas úteis de notificação por push em um NowPushPayload objeto para coletar informações e usar os dados em outras partes da aplicação. Atualmente, isso só está disponível para notificações por push do Virtual Agent. Use um código semelhante ao seguinte
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
guard let pushService = pushService else {
completionHandler()
return
}
let userInfo = response.notification.request.content.userInfo
_ = pushService.payloadFromUserInfo(userInfo)
.flatMap(handleNowPushPayload)
}
func handleNowPushPayload(_ payload: NowPushPayload) -> Result<Void, NowPushError> {
guard payload is NowPushVirtualAgent else {
return .failure(NowPushError.unsupportedData)
}
launchVirtualAgent()
return .success(())
}