ios 上的 Firebase 通知 - React 本机
Firebase notifications on ios - React native
我正在尝试在 iOS 和 Android 上获取推送通知 运行 React Native。
为此,我使用了 firebase,因为这似乎非常方便。
在 Android 我设法在应用程序在前台时显示通知,并且至少在应用程序在后台时显示日志,这意味着我可以处理它们。
在 iOS 上,我没有设法做到这些,不是来自我们在 aws 中的自定义后端(通过 SNS),也不是来自带有 fcm 令牌的 firebase 控制台。有趣的是,在向所有用户发送广播消息时,在 ios 应用程序图标上显示一个徽章。所以 phone.
上似乎收到了一些东西
现在更深入地研究一下,我发现 iOS 需要以下格式的通知:
{
"Simulator Target Bundle": "com.compass.SomeExampleApp",
"aps": {
"badge": 0,
"alert": {
"title": "Push Notification Test",
"subtitle": "Hey! ",
"body": "Is this working?",
},
"sound":"default"
}
}
至少这是您可以在 sim 上测试它们的方法。
1.这是否意味着我必须以相同的格式发送通知? 或者可以像这样:
{
"data":{},
"apns": {
"Simulator Target Bundle": "com.company.Example",
"aps": {
"alert": {
"body": "Wellcome to MyApp!",
"title": "MyApp"
}
}
}}
2。如何发送 iOS 和 Android 可以读取 的格式,如有必要,在屏幕上显示并在后台处理?
由于我们只发送数据消息,如果我查看我们的后端,我认为这可能是问题的一部分。
从 firebase 发送时,我仍然无法在 ios 设备的屏幕上显示任何内容。有什么提示吗?
我找到了一个在两个平台上都有效的解决方案,虽然它有点奇怪,因为它似乎已经过时了。代码需要看起来像这样才能发送到 iOS 和 Android:
{ "GCM": "{ \"notification\" : {\"content_available\" : true }, \"data\": { \"body\": \"Sample message for iOS endpoints\", \"title\":\"Hello world\"} }" }
如此处所见,如果在 GCM 消息中添加 APNS 属性,例如在本例中为 content_available
或 badge
.
,似乎至少部分起作用
我正在尝试在 iOS 和 Android 上获取推送通知 运行 React Native。 为此,我使用了 firebase,因为这似乎非常方便。
在 Android 我设法在应用程序在前台时显示通知,并且至少在应用程序在后台时显示日志,这意味着我可以处理它们。
在 iOS 上,我没有设法做到这些,不是来自我们在 aws 中的自定义后端(通过 SNS),也不是来自带有 fcm 令牌的 firebase 控制台。有趣的是,在向所有用户发送广播消息时,在 ios 应用程序图标上显示一个徽章。所以 phone.
上似乎收到了一些东西现在更深入地研究一下,我发现 iOS 需要以下格式的通知:
{
"Simulator Target Bundle": "com.compass.SomeExampleApp",
"aps": {
"badge": 0,
"alert": {
"title": "Push Notification Test",
"subtitle": "Hey! ",
"body": "Is this working?",
},
"sound":"default"
}
}
至少这是您可以在 sim 上测试它们的方法。
1.这是否意味着我必须以相同的格式发送通知? 或者可以像这样:
{
"data":{},
"apns": {
"Simulator Target Bundle": "com.company.Example",
"aps": {
"alert": {
"body": "Wellcome to MyApp!",
"title": "MyApp"
}
}
}}
2。如何发送 iOS 和 Android 可以读取 的格式,如有必要,在屏幕上显示并在后台处理?
由于我们只发送数据消息,如果我查看我们的后端,我认为这可能是问题的一部分。 从 firebase 发送时,我仍然无法在 ios 设备的屏幕上显示任何内容。有什么提示吗?
我找到了一个在两个平台上都有效的解决方案,虽然它有点奇怪,因为它似乎已经过时了。代码需要看起来像这样才能发送到 iOS 和 Android:
{ "GCM": "{ \"notification\" : {\"content_available\" : true }, \"data\": { \"body\": \"Sample message for iOS endpoints\", \"title\":\"Hello world\"} }" }
如此处所见,如果在 GCM 消息中添加 APNS 属性,例如在本例中为 content_available
或 badge
.