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

使用Node js将AMAZON SNS通知负载推送到android mobile

潘高岑
2023-03-14

使用NodeJS中的aws-sdk包实现Amazon SNS消息推送到android设备。我下面提到了几个实现。移动设备正在显示推送通知。我想在有效负载中发送数据和通知对象。

let payload2 = JSON.stringify({
  default: 'Naresh',
  GCM:  JSON.stringify({
    notification : {
      body : 'great match!',
      title : 'Portugal vs. Denmark'       
    },
    data:{
      testdata: 'Check out these awesome deals!',
      url: 'www.amazon.com'
    }
  })
});

它不发送推送通知。

let payload1 = {
  "GCM": "{
    \"notification\": {
      \"title\": \"this one last test in app\", 
      \"body\": \"mm hello tests\"
    },
    \"data\": {
      \"turnclass\": \"efwfwe\",
      \"flight\": \"truejet\"}
  }"
};

它正在发送推送通知。

sns.publish({ TargetArn: targetArn,
  Message: payload1,
  MessageStructure: 'json'
}, (error, data) => (error) ? reject(error) : resolve(data));

发送推送通知的正确格式是什么?

共有1个答案

张卓
2023-03-14

根据留档:

使用Amazon SNS控制台在消息中发送特定于平台的有效负载时,数据必须是键值对字符串并格式化为带有引号转义的JSON。

示例:

{
   "GCM":"{
      "data":{
         "message":"Check out these awesome deals!",
         "url":"www.amazon.com"
      }
   }"
}

您在第一个有效负载中执行的操作将生成以下输出:

{"default":"Naresh","GCM":"{\"notification\":{\"body\":\"great match!\",\"title\":\"Portugal vs. Denmark\"},\"data\":{\"testdata\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}"}

并且这不是有效的格式。发生这种情况是因为您是双重JSON。字符串化对象的一部分。因此,如果您这样做:

let payload2 = JSON.stringify({
  default: 'Naresh',
  GCM: {
    notification: {
      body: 'great match!',
      title: 'Portugal vs. Denmark'
    },
    data: {
      testdata: 'Check out these awesome deals!',
      url: 'www.amazon.com'
    }
  }
});

它将产生:

{"default":"Naresh","GCM":{"notification":{"body":"great match!","title":"Portugal vs. Denmark"},"data":{"testdata":"Check out these awesome deals!","url":"www.amazon.com"}}}

这应该像预期的那样工作。

 类似资料:
  • 我正在工作的谷歌Chrome推送通知,我正在尝试发送有效负载到谷歌Chrome工作者,但我不知道我如何接收这个有效负载。 我有一个API可以在数据库中创建和保存通知,我需要通过发送值,并在worker.js上接收 这是我的工作人员。JS 我就是这么叫GCM的 我试图获取,但这是未定义的。 有人有什么想法或建议吗?

  • 问题内容: 我只想知道如何确定在无提示推送中要执行的操作: 这是我发送给客户的: 现在的问题是,当我添加以确定静默推送是为了让“订单更新”显示警报通知时。 问题答案: 有一些选择!让我们花点时间了解所有不同的有效负载及其用法。 简单有效载荷 显示在通知中心:是 唤醒应用以执行后台任务:否 带有自定义通知声音的有效负载 显示在通知中心:是 唤醒应用以执行后台任务:否 :在您的应用程序包中添加自定义通

  • 我已经在华为AppGallery上发布了一个Android应用程序,并且能够通过HMS推送服务从我的应用程序后端服务器向手机发送推送通知,如下所述。 不过,不知如何访问App中的推送通知有效载荷: 下面是我当前发送推送通知的方式- 以下URL编码的正文: 值所在的位置(我不确定它是否具有正确的JSON结构以及“type”3的真正含义): 我需要提取自定义整数“GID”值(我的应用程序中的“游戏ID

  • 问题内容: 我想使用Java将“推送通知”消息发送到特定的iPhone设备。 我不知道该怎么做。 我对此进行了谷歌搜索,他们建议使用“ PayLoad”类,但不要从任何jar文件中获取此类。 请有人指导我通过Java将推送通知消息发送到iPhone吗? 问题答案: 使用JavaPNS。例如:

  • 离子推动 似乎是最好的解决办法。它“模拟”浏览器中的通知,使测试变得容易。有两个版本: > 1.0版:文档可在http://docs.ionic.io/v1.0/docs/push-overview上查阅。页面底部显示一个警告,表示要检查最新版本(2.0beta)。如果我一直留在页面中并尝试按照说明操作,那么一切似乎都运行得很好,但是如果我将推送发送到https://push.ionic.io/a

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w