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

接收到无效的JSON负载。未知名称click_action

司空鸿禧
2023-03-14

所以我现在正在开发一个PWA。

我现在正在处理推送通知,并且已经能够通过以下非常简单的JSON结构接收后台和前台通知。

{
  "message":{
    "token":"aValidToken",
    "notification": {
      "title": "New Content!",
      "body": "A new video has been uploaded."
    }
  }
}
{
  "message":{
    "token":"aValidToken",
    "notification": {
      "title": "New Content!",
      "body": "A new video has been uploaded.",
      "click_action":"https://www.google.com.ar/"
    }
  }
}
{
    "error": {
        "code": 400,
        "message": "Invalid JSON payload received. Unknown name \"click_action\" at 'message.notification': Cannot find field.",
        "status": "INVALID_ARGUMENT",
        "details": [
            {
                "@type": "type.googleapis.com/google.rpc.BadRequest",
                "fieldViolations": [
                    {
                        "field": "message.notification",
                        "description": "Invalid JSON payload received. Unknown name \"click_action\" at 'message.notification': Cannot find field."
                    }
                ]
            }
        ]
    }
}

最后,我尝试在setBackgroundMessageHandler中硬编码图标和click_action,但没有成功。如果不显示图标,则单击通知时不会发生任何情况。

messaging.setBackgroundMessageHandler( (notif) => {

  const notificationTitle = notif.notification.title;
  const notificationOptions = {
    body : notif.notification.body,
    icon : '/assets/icon/icon72x72.png',
    click_action : 'https://www.google.com.ar/'
  };

  return self.registration.showNotification(notificationTitle, notificationOptions);
});

这纯粹是一个Ionic PWA项目,意在移动浏览器和桌面上运行。我会很感激你给我的每一个小费!谢谢!

共有1个答案

臧正平
2023-03-14

您可以使用正在使用的API定义图标,但您的负载需要是:

{
  "message": {
    "token": "aValidToken",
    "webpush": {
      "notification": {
        "title": "New Content!",
        "body": "A new video has been uploaded.",
        "icon": "your_icon"
      }
    }
  }
}

您可以在这里找到有关webpush通知字段的更多信息。

请注意,您提到的大多数其他字段(优先级、声音、徽章)在任一API的web上都不受支持。

编辑(2018年5月10日):新API现在支持所有通知属性(优先级、图标、声音、徽章等)。有关详细信息,请参阅本指南。

 类似资料:
  • 我的第一篇文章,与以下文章相关我如何在PHP中设置一个基本的过滤器使用谷歌床单api? 我已经实现了下面的代码,但收到了这条消息,我不确定原因是什么: 收到无效的JSON有效载荷。未知名称"请求"处的"请求[0]":找不到字段。

  • 我刚开始使用Sheets API,并按照以下设置创建新的工作表:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create 在此代码中,spreadsheetBody对象为空。为此,我使用了本页上的示例:https://developers.google.com/sheets/api/samples/

  • 我正在编写一个python脚本,它首先在GoogleSheets中创建一个工作表,然后将CSV上传到其中,然后从工作表中生成幻灯片表格。我正在使用sheets API,我可以成功地创建一个新的工作表。然而,当尝试将CSV上传到其中时,我得到一个“无效JSON负载”错误,表示找不到PasteDataRequest。我直接从docs PasteDataRequest docs和batchUpdate

  • 我正在测试XCode 12.2中的通知。测试警报样式的通知非常容易。你只需在模拟器中将它们拖到你的应用程序上,有效载荷就会显示在: func应用程序(application:UIApplication,DidReceiveEmotentification用户信息:[AnyHashable:Any],fetchCompletionHandler completionHandler:@escaping

  • 我们正在使用解析存储聊天消息,我们正在使用解析通知。 对于iOS,我们这样做是为了在Parse的安装表中创建条目…它在parse的安装表中创建条目,我认为这是接收通知所必须的。 我没有收到来自解析的通知,我认为这是没有收到通知的原因… 事实是这样的吗? 有谁能帮我走上正路吗? 更新 现在收到通知但仍有些疑虑。我在用户登录时执行此操作。我有放条件,如果用户没有创建,那么只有创建,否则不。我没有把它加

  • 我有一个实体叫做 我正在尝试使用criteriaBuilder和谓词进行搜索 我在这里得到了例外 我曾提出一些类似的问题,但我没有得到任何解决办法。