接收到无效的JSON有效载荷.未知名称click_action



因此,我目前正在开发PWA。

我现在正在使用推送通知,我已经能够通过以下非常简单的JSON结构来收到背景和前景通知。

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

我也能够在其中添加一个数据成员,并在没有不便的情况下获得通知。

现在的问题是,如果我想将另一个成员添加到JSON,例如例如 click_action ,我会发布以下内容:

{
  "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."
                    }
                ]
            }
        ]
    }
}

几乎所有其他成员都发生在我身上,例如:优先级,图标,声音,徽章等。

最后,我尝试了硬编码 ICON click_action setbackgroundMessageHandler (确实被调用(中,以无用。没有图标出现,单击通知时什么也不会发生。

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);
});

这纯粹是离子PWA 项目,旨在在移动浏览器和桌面上运行。我会感谢您可以给我的所有技巧!谢谢!

看起来您正在使用新的API:https://firebase.google.com/docs/reference/fcm/rest/rest/v1/projects.messs.messages

,但试图使用遗产API的字段:https://firebase.google.com/docs/cloud-messaging/http-server-ref

您可以使用所使用的API定义图标,但是您的有效载荷必须是:

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

您可以在此处找到有关WebPush通知字段的更多信息。

fyi,您提到的其他大多数字段(优先,声音,徽章(是不是尚未在Web上支持的API。

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

相关内容

  • 没有找到相关文章

最新更新