如果 GCM 自动显示,如何处理 Android 中的通知点击
How to handle tap of notification in Android if displayed automatically by GCM
在 GCM 的最新更新中,我在 Android 中遇到了 2 个问题。根据 GCM,如果有效负载包含 'notification' 属性,它将自动在托盘中显示通知。但是他们没有提到如何处理该通知的点击事件。如果负载仅包含数据属性,则调用 GCMListenerService 的 'onMessageReceived'。但是,如果负载同时包含通知和数据属性,则不会调用该方法。知道如何解决吗?我还必须检查 iOS 以了解它在那里的表现。
您需要在通知负载中设置一个 click_action。然后,当用户 opens/clicks 收到通知时,您的应用中使用该操作声明的 Activity 将启动。
例如设置 click_action: OPEN_ACTIVITY_1,然后将以下意图过滤器添加到所需的 Activity:
<intent-filter>
<action android:name="OPEN_ACTIVITY_1" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
然后您可以使用 getIntent() 从 Activity 中的消息中提取数据,然后查看 intent extras。
在此处查看条目:https://developers.google.com/cloud-messaging/server-ref#notification-payload-support
如果您使用 notification
参数发送推送,那么您无法在 onMessageReceived
上处理
如果您想处理通知,请使用 data
选项发送推送,现在您可以使用 GCM 和 onMessageReceived
.
处理
注意:ios 使用 notifications
键处理通知。
使用 notification
键为 ios 发送推送,为 android data
键发送推送。
对于android;
{"data":{"message":"hey"}},registration_ids":["device token"]
对于ios:
{"notification":{"title":"Hey title", "body":" Hey body"},"to":"device token"}
在 GCM 的最新更新中,我在 Android 中遇到了 2 个问题。根据 GCM,如果有效负载包含 'notification' 属性,它将自动在托盘中显示通知。但是他们没有提到如何处理该通知的点击事件。如果负载仅包含数据属性,则调用 GCMListenerService 的 'onMessageReceived'。但是,如果负载同时包含通知和数据属性,则不会调用该方法。知道如何解决吗?我还必须检查 iOS 以了解它在那里的表现。
您需要在通知负载中设置一个 click_action。然后,当用户 opens/clicks 收到通知时,您的应用中使用该操作声明的 Activity 将启动。
例如设置 click_action: OPEN_ACTIVITY_1,然后将以下意图过滤器添加到所需的 Activity:
<intent-filter>
<action android:name="OPEN_ACTIVITY_1" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
然后您可以使用 getIntent() 从 Activity 中的消息中提取数据,然后查看 intent extras。
在此处查看条目:https://developers.google.com/cloud-messaging/server-ref#notification-payload-support
如果您使用 notification
参数发送推送,那么您无法在 onMessageReceived
如果您想处理通知,请使用 data
选项发送推送,现在您可以使用 GCM 和 onMessageReceived
.
注意:ios 使用 notifications
键处理通知。
使用 notification
键为 ios 发送推送,为 android data
键发送推送。
对于android;
{"data":{"message":"hey"}},registration_ids":["device token"]
对于ios:
{"notification":{"title":"Hey title", "body":" Hey body"},"to":"device token"}