推送通知
推送通知
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.DefaultMessagingService”
android:出口=”假”>
<意图过滤器>
<行动android:名字=”com.google.firebase.MESSAGING_EVENT”/>
意图过滤器>
服务>
应用程序>
使用FirebaseMessagingService的自定义实现
如果你想用你自己的FirebaseMessagingService
Zendesk 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 newToken){
PushNotifications.updatePushNotificationToken(newToken);
}
}
显示来自消息传递的推送通知
当收到推送通知时,您必须确定它是否属于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 RemoteMessage){
PushResponsibility责任=PushNotifications.shouldBeDisplayed(remoteMessage.getData());
开关(责任){
案例MESSAGING_SHOULD_DISPLAY:
//此推送属于消息传递,SDK能够将其显示给最终用户
PushNotifications.displayNotification(这,remoteMessage.getData());
打破;
案例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
PushNotifications.setNotificationSmallIconId(R.可拉的.my_icon);