java - 如何通过 urbanairship 推送通知发送额外数据

标签 java android push-notification google-cloud-messaging urbanairship.com

所以我需要向用户的设备发送推送通知。然后当用户点击通知时,我需要我的应用程序执行特定操作。我想在通知中包含操作参数。但是我不想让用户看到参数;他们应该只看到消息。做了一些研究,我在 Urban Airship 网站上发现了以下内容

{
   "audience": "all",
   "notification": {
      "alert": "Extras example",
      "android": {
        "extra": {
            "url": "http://example.com",
            "story_id": "1234",
            "moar": "{\"key\": \"value\"}"
         }
      }
   },
   "device_types": ["android"]
}

所以我假设 alert 部分是用户看到的。 android 下的部分可以是参数。 所以我的问题是,在 Java 中,我如何读取那些额外的部分?例如 story_idmoar

最佳答案

由于这里没有接受任何答案,我想我会展示我是如何做的。 如果您正在关注 UrbanAirship,我有一个扩展 BroadcastReceiver 的类。在这个类中,我收到了通知:

public class IntentReceiver extends BroadcastReceiver {

    private static final String logTag = "PushUA";
    private String pushToken;

    public static String APID_UPDATED_ACTION_SUFFIX = ".apid.updated";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(logTag, "Received intent: " + intent.toString());
        String action = intent.getAction();

        if (action.equals(PushManager.ACTION_PUSH_RECEIVED)) {          

            int id = intent.getIntExtra(PushManager.EXTRA_NOTIFICATION_ID, 0);

            logPushExtras(intent);

        } else if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) {

            Log.i(logTag, "User clicked notification. Message: " + intent.getStringExtra(PushManager.EXTRA_ALERT));

            logPushExtras(intent);

            String url= intent.getStringExtra("url"); //Here you get your extras

...

可能会帮助某人:)

关于java - 如何通过 urbanairship 推送通知发送额外数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21418936/

相关文章:

java - 带有翻译的 FXML 选择框

android - 从广播接收器启动 Activity 时无法访问共享首选项

ios - 静默推送消息,如果应用程序处于后台且未插电则无法使用react

ios - 如何在IOS中安装phonegap-plugin-push

java - Java 中的语法 <T extends Class<T>>

java - 使用 Objectify 的 DataStore - 加载实体/键而不指定父级

java - 为什么这个数独求解器的递归方法一直在旋转?

android - 检查圆形地理围栏内的地理位置(纬度,经度)

android - 如何在android虚拟设备中安装oculus sdk?

ios - 推送通知未在后台接收但在前台工作