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

向终端节点 AWS SNS 发送通知时看不到消息

韶和璧
2023-03-14

我已设置了一个 AWS SNS 系统,以向已按照本教程订阅主题的所有终端节点发送通知(我已在此处设置了 Firebase 云信使,而不是 GCM):

https://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/sns.html

当应用运行时,一切按预期方式工作。我可以通过 AWS SNS 控制台发送消息,并且我将在我的终端节点(物理设备和模拟器)上收到通知,但是当应用程序关闭并且我尝试从 AWS SNS 控制台发送相同的 JSON 数据时,我只会在通知中看到标题。我发送的 JSON 数据是:

< code>{ "default": "Testing "," sqs": "Testing "," GCM ":" { \ " notification \ ":{ \ " message \ ":\ " Testing \ " } } " }

我有一个PCL Xamarin Forms项目,其中包含以下代码,用于在收到来自Firebase的通知时处理通知:

    private void HandleMessage(Intent intent)
    {
        string message = string.Empty;
        Bundle extras = intent.Extras;

        if (!string.IsNullOrEmpty(extras.GetString("message")))
        {
            message = extras.GetString("message");
        }
        else
        {
            message = extras.GetString("default");
        }

        AndroidUtils.ShowNotification(this, "Test", message);
    }

然后,当我想显示通知时:

public static void ShowNotification(Context context, string contentTitle,
            string contentText)
    {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, Constants.CHANNEL_ID);
        builder.SetAutoCancel(true);
        builder.SetSmallIcon(Resource.Mipmap.icon_round);
        builder.SetContentText(contentText);
        builder.SetContentTitle(contentTitle);
        builder.SetPriority(NotificationCompat.PriorityDefault);
        Notification notification = builder.Build();

        if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
        {
            NotificationChannel notificationChannel = new NotificationChannel(Constants.CHANNEL_ID, Constants.ANDROID_CHANNEL_NAME, NotificationImportance.Default);
            NotificationManager notificationManager = context.GetSystemService(Context.NotificationService) as NotificationManager;
            notificationManager.CreateNotificationChannel(notificationChannel);

            const int notificationID = 0;
            notificationManager.Notify(notificationID, notification);
        }
        else
        {
            NotificationManager notificationManager = context.GetSystemService(Context.NotificationService) as NotificationManager;
            const int notificationID = 0;

            notificationManager.Notify(notificationID, notification);
        } 
    }

因此,我在这里的主要问题是,当应用程序已关闭/关闭并且我从SNS发送通知时,我如何获取数据包的消息部分?

共有1个答案

方嘉言
2023-03-14

有两种类型的FCM消息

通知消息

数据消息

参考 - 如何处理在Firebase中后台使用应用时的通知

 类似资料:
  • 说明 此接口用于向排队的微信用户发送消息,如到号时的叫号信息 请求地址 http://api.dc78.cn/Api/wwnotify 请求方式 GET 请求参数 URL参数 参数名称 必填 描述 范例 id 排队号id msg 要发送的信息 POST参数 参数名称 必填 描述 范例 无 GET参数 参数名称 必填 描述 范例 id 排队号id 是 排队列表协议中的id 223729 msg 通知

  • 线下取的号不能发送通知 请求参数说明 参数 描述 必填 示例值 类型 最大长度 action 接口参数组 是 object └action 需要调用的接口名称 是 wwget string get GET参数组,本组参数需要参与签名 是 object └id 排队号id 否 47302320 number └msg 通知消息 否 38号客人请返回用餐啦 string 请求示例 { "action

  • 我需要使用< code>aws-sdk-go lib通过设备令牌数组向多个设备发送SNS推送通知。 目前我正在使用以下步骤向SNS发送推送消息: 创建endpoint: 将消息发送到endpoint: 我还没有见过一种方法,只使用一个请求就可以将一个推送消息发送到多个设备。可能吗? 像这个例子来说明:

  • 这是舱单 这是我的注册令牌类 这是我的Firebase服务类

  • 我正在尝试使用HDFS kafka连接器将protobuf消息从kafka发送到HDFS。我的连接器配置如下所示 为了测试这一点,我尝试在一个小节点应用程序中发送protobuf序列化消息。这是我的文件: 和我的节点应用程序 但是,当我运行此程序时,我会出现以下错误: 我该如何解决这个问题?我的猜测是,我的protobuf模式没有在Kafka模式注册表中注册,但我不确定。如果是这种情况,是否有方法

  • 问题内容: 我只能在用户的套接字ID直接存储在io.sockets.on(’connect’)函数中时向用户发出消息。我不知道为什么在登录后尝试存储其套接字ID时为什么不起作用。 加工: 无法运作: JavaScript客户端代码段 解决方案:感谢@alessioalex, 我不得不从登录页面中删除对socket.io的引用,并将以下内容添加到io.sockets.on(’connection’)