推送通知

Zend亚博esk Android SDK支持Firebase云消息发送和接收推送通知。以下步骤将指导您或您的开发团队在应用程序中为Zendesk SDK设置推送通知。亚博

FCM作为SDK的编译依赖项包含在内,这意味着如果您不打算使用推送通知,则不需要开箱即用的额外步骤。

如果你打算在你的应用中使用推送通知,将下面的依赖项添加到你的gradle文件中,并在你的应用中实现云消息在Android上设置一个Firebase云消息客户端应用程序在Firebase文档中,以便您的应用程序能够接收来自Firebase的推送通知。

             
实现平台(“com.google.firebase: firebase-bom: {latest_version}”)实现“com.google.firebase: firebase-messaging: {latest_version}”

步骤1 -在Firebase中设置推送通知

在应用程序中设置云消息传递,如在Android上设置一个Firebase云消息客户端应用程序在Firebase文档中,以便您的应用程序能够接收来自Firebase的推送通知。

步骤2 -在Zendesk管理中心添加您的Firebase密钥和ID亚博

现在您已经在Firebase中设置了云消息,您的Firebase关键ID将需要上传到Zendesk管理中心的管理员在您的Zende亚博sk帐户。如果您不是管理员,请联系您帐户上的管理员,以协助您执行此步骤。

步骤3 -在应用程序的代码库中实现推送通知

当在你的应用代码库中实现推送通知时,你有两个选择。的默认实现FirebaseMessagingService,如果你愿意,也可以用你自己的。完成这两个选项的步骤详细如下。

使用FirebaseMessagingService的默认实现

Zend亚博esk SDK for Android提供的默认实现FirebaseMessagingService将:

  • 当创建新的设备令牌时通知SDK
  • 如果Messaging是接收消息的来源,则显示推送通知

如果Andro亚博id的Zendesk SDK是你应用程序推送通知的唯一预期来源,那么你可以注册DefaultMessagingService类的应用程序标签AndroidManifest.xml

             
<应用程序><!——使用SDK默认的消息服务——><服务android:名字=亚博zendesk.messaging.android.push.DefaultMessagingServiceandroid:出口=><意图过滤器><行动android:名字=com.google.firebase.MESSAGING_EVENT/>意图过滤器>服务>应用程序>

使用FirebaseMessagingService的自定义实现

如果你想用你自己的FirebaseMessagingServiceZendesk SDK for Android提供了一组方便的方法来处理推送通知。亚博

更新推送通知令牌

要使设备能够接收推送通知,必须在创建新令牌时通知SDK。

下面的代码片段演示了如何处理更新推送令牌。

芬兰湾的科特林

             
进口com.google.firebase.messaging.FirebaseMessagingService进口zende亚博sk.messaging.android.push.PushNotifications/ * **一个与消息SDK交互的[FirebaseMessagingService]的集成示例。* /类SampleMessagingService: FirebaseMessagingService() {重载onNewToken(newToken: String) {PushNotifications.updatePushNotificationToken (newToken)}}

Java

             
进口androidx注释null进口com谷歌重火力点消息传递FirebaseMessagingService进口zende亚博sk消息传递安卓PushNotifications公开课SampleMessagingService扩展FirebaseMessagingService@Override公共空间onNewToken@NonNull String newTokenPushNotificationsupdatePushNotificationTokennewToken}}
显示来自消息传递的推送通知

当收到推送通知时,您必须确定它是否属于SDK。然后,您可以将数据提供给SDK以代表您显示通知。

下面的代码片段演示了如何集成和显示推送通知。

芬兰湾的科特林

             
进口com.google.firebase.messaging.FirebaseMessagingService进口com.google.firebase.messaging.RemoteMessage进口zende亚博sk.messaging.android.push.PushNotifications进口zende亚博sk.messaging.android.push.PushResponsibility.MESSAGING_SHOULD_DISPLAY进口zende亚博sk.messaging.android.push.PushResponsibility.MESSAGING_SHOULD_NOT_DISPLAY进口zende亚博sk.messaging.android.push.PushResponsibility.NOT_FROM_MESSAGING/ * **一个与消息SDK交互的[FirebaseMessagingService]的集成示例。* /类SampleMessagingService: FirebaseMessagingService() {重载onmessagerreceived (remoteMessage: remoteMessage) {val responsibility = pushnotification . shouldbedisplay (remoteMessage.data)When(责任){Messaging_should_display -> {//此推送属于消息传递,SDK能够将其显示给最终用户PushNotifications.displayNotification(context = this, messageData = remoteMessage.data)}Messaging_should_not_display -> {//此推送属于消息传递,但不应该显示给最终用户}Not_from_messaging -> {//此推送不属于消息传递}}}}

Java

             
进口androidx注释null进口com谷歌重火力点消息传递FirebaseMessagingService进口com谷歌重火力点消息传递RemoteMessage进口zende亚博sk消息传递安卓PushNotifications进口zende亚博sk消息传递安卓PushResponsibility公开课SampleMessagingService扩展FirebaseMessagingService@Override公共空间onMessageReceived@NonNull RemoteMessagePushResponsibility责任=PushNotificationsshouldBeDisplayedremoteMessagegetData开关责任案例MESSAGING_SHOULD_DISPLAY//此推送属于消息传递,SDK能够将其显示给最终用户PushNotificationsdisplayNotificationremoteMessagegetData打破案例MESSAGING_SHOULD_NOT_DISPLAY//此推送属于消息传递,但不应该显示给最终用户打破案例NOT_FROM_MESSAGING//此推送不属于消息传递打破}}}

请注意:当应用处于后台状态时,PushNotifications.displayNotification会让你回到谈话中来。然而,当应用程序处于kill状态时,它会打开应用程序,因为SDK还没有初始化。如果您使用不是来自Zendesk的通知调用此方法,则不会显示该通知。亚博

如果你想改变那个行为,你将不得不实现你自己对推送显示的处理,以及处理SDK和调用的初始化.showMessaging显示对话。

(可选)步骤4—更换通知小图标

Zend亚博esk Android SDK在显示消息通知时使用聊天气泡图标。此图标可以通过为自己的图标提供资源ID来定制。

下面的代码片段演示了如何提供自定义图标ID。

芬兰湾的科特林

             
PushNotifications.setNotificationSmallIconId (R.drawable.my_icon)

Java

             
PushNotificationssetNotificationSmallIconIdR可拉的my_icon