当前位置: 首页 > 知识库问答 >
问题:

通过Firebase(Android)的Freshchat推送通知

丁慈
2023-03-14

我正在我的应用程序中实施第三部分服务(FreshChat,一种允许您将帮助台集成到应用程序或网站中的服务),除了聊天的推送通知之外,一切都很好。Freshchat通过Firebase工作(Firebase推送通知不会出现问题),但Fresat通知不起作用。我遵循了newchat的官方留档,但有已弃用的方法,绝对不起作用(我尝试了很多)

这是Firebase云消息传递代码:

 public class FireBase  extends FirebaseMessagingService {




@Override
public void onMessageReceived(RemoteMessage message) {
    super.onMessageReceived(message);


    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "channel_id")
            .setContentTitle(message.getNotification().getTitle())
            .setContentText(message.getNotification().getBody())
            .setPriority(NotificationCompat.PRIORITY_DEFAULT)
            .setStyle(new NotificationCompat.BigTextStyle())
            .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
            .setSmallIcon(R.mipmap.ic_launcher)
            .setAutoCancel(true);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());


}

以及FreshChat文档摘录:

7.1将Freshchat与FCM连接

如果尚未集成FCM,请按照此处的说明进行操作。在遵循FCM步骤进行集成后,请按照这两个步骤连接Freshchat和FCM

步骤1.发送注册令牌在应用程序的Firebase InstanceIdService实现中,将令牌发送到Freshchat,如下所示

 Java
 @Override
 public void onTokenRefresh() {
 String token = FirebaseInstanceId.getInstance().getToken();
 Freshchat.getInstance(this).setPushRegistrationToken(token);
  }

步骤2:处理FCM消息在应用程序的FirebaseMessagingService实现中,如果是Freshchat通知,则将RemoteMessage对象传递给Freshchat。

 Java
 public void onMessageReceived(RemoteMessage remoteMessage) {
 if (Freshchat.isFreshchatNotification(remoteMessage)) {
    Freshchat.getInstance(this).handleFcmMessage(context, remoteMessage);
 } else {
    //Handle notifications with data payload for your app
 }
 }

我试着通过文档来做,但根本不行,你能帮我吗?提前谢谢!这里还有完整的FreshChat文档:https://support.freshchat.com/support/solutions/articles/229319-freshchat-android-sdk-integration-steps

共有1个答案

海宁
2023-03-14

试着把这个添加到你的默认活动中,它对我很有用。

FirebaseInstanceId.getInstance().getInstanceId()
           .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
               @Override
               public void onComplete(@NonNull Task<InstanceIdResult> task) {
                   if (!task.isSuccessful()) {
                     Log.e(TAG, "getInstanceId failed", task.getException());
                     return;
                   }
                   // Get new Instance ID token
                   String token = task.getResult().getToken();
                   Freshchat.getInstance(this).setPushRegistrationToken(token);
             
                   Log.e("Token", token.toString());
               }
           });

希望这对你有帮助。快乐的编码!!

 类似资料:
  • 这是舱单 这是我的注册令牌类 这是我的Firebase服务类

  • 我想在登录时向特定用户发送通知,我使用Firebase消息,我可以通过控制台发送通知,但我想使用发送到主题和request以Swift代码发送此通知。当我在postman中运行代码时,我无法实现http请求以发送通知。我有以下错误: 请求缺少身份验证密钥(FCM令牌)。请参阅FCM文档的“认证”部分,网址为https://firebase.google.com/docs/cloud-messagi

  • 如何通过Azure从我的UWP-App向不同设备上的应用程序的其他实例发送推送通知? 以下是注册设备以接收推送的说明。(这是可行的)第二部分是关于如何在控制台应用程序上发送推送(这也是可行的)https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-windows-store-dotnet-get-star

  • 我正在写一个iOS的应用程序,使用laravel的API和谷歌Firebase的推送通知。当我使用Firebase云消息传递发送消息推送时,它会进入我的设备。当我使用laravel发送推送通知时,它不会影响。这里是我的脚本发送推送通知laravel: 它返回一个成功的结果,但通知未发送到iOS设备。 PS:它可以在Android设备上成功运行。

  • 我正在尝试使用Postman通过云消息服务发送一次推送通知。 这是一个用于相同目的的工作命令,我将其用作参考。 到目前为止我所做的。。 1-适当设置标题 2-在Body,我使用 执行时,我返回

  • 当我的应用程序处于打开状态时,我正在通过onMessageReceived(Remotemessage mesg)获得推送通知。如果我的应用程序处于Kilded状态,我将收到推送通知,但不是从onMessageReceived()获得的。 意思是,在收到推送通知后,根据通知中的数据,我需要重定向页面,当通知点击时。如果应用程序在前景工作良好。当我杀人的时候,我在托盘上收到通知,但当我点击通知时,它