San*_*ada 7 android apple-push-notifications ios swift3 firebase-cloud-messaging
在android中,当app未运行或处于关闭状态时,我们可以接收数据类型的通知.并且可以使用代码解析和显示通知,并且可以执行更新旧消息等任何操作.
public class FCMListenerService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d("onMessageReceived for FCM", remoteMessage.getData().toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能在ios中做类似的事情?
当应用程序处于后台或前台时,我能够获得通知的数据类型.所以我能够做我想做的事.但是,当app未运行时,我无法调试如何处理数据类型通知?有人能帮我吗?
下面是我要发送的有效负载.
{
"to": "..............",
"data": {
"body": "data",
"title": "Portugal vs. Denmark",
"icon": "myicon"
},
"content_available": true
}
Run Code Online (Sandbox Code Playgroud)
不允许您将自定义标签放入 aps 标签内。以下是文档对此的描述:
提供商可以在 Apple 保留的 aps 命名空间之外指定自定义负载值。自定义值必须使用 JSON 结构化和原始类型:字典(对象)、数组、字符串、数字和布尔值。所以在你的情况下你应该这样做:
{
"aps" : {
"alert" : {
"title" : "Game Request",
"body" : "Bob wants to play poker",
"action-loc-key" : "PLAY"
},
"badge" : 5
},
"acme1" : "bar",
"acme2" : [ "bang", "whiz" ]
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以通过在主 JSON 中查找其键(而不是在“aps”中)来读取自定义负载:
欲了解更多信息: