【友盟+】开发者社区

推送 SDK的自定义参数处理

dttlove_ni 发表于 2014-9-26 11:57:32 |

dttlove_ni
dttlove_ni 发表于 2014-9-25 17:08:36 | 显示全部楼层 |阅读模式
推送的消息可能会有key、Value等自定义参数,程序中怎么获取消息的数据并对其进行相应的行为处理呢?



上一篇:iOS8下推送有bug啊【强烈要求紧急解决!!!!!】
下一篇:创建应用后UMENG_MESSAGE_SECRET如何获取


push更新
push更新 发表于 2014-9-26 11:57:32 | 显示全部楼层
您好,您可以参照以下的说明:

自定义参数截图.png

这些自定义参数将通过extra字段发送到客户端,下面是发送至客户端的JSON字符串。


{
    "msg_id": "uu481201399440513912",
    "display_type": "notification",
    "alias": "",
    "random_min": 0,
    "body": {
        "title": "测试自定义参数",
        "ticker": "测试自定义参数",
        "text": "无",
        "after_open": "go_app",
        "url": "",
        "activity": "",
        "custom": "",
        "play_vibrate": "true",
        "play_sound": "true",
        "play_lights": "true"
    },
    "extra": {
        "key1": "value1",
        "key2": "value2"
    }
}
另外,开发者也可以通过Umessage.extra获取到自定义参数.


for (Entry<String, String> entry : msg.extra.entrySet())
{
    String key = entry.getKey();
    String value = entry.getValue();
    ...
}
若开发使用Push SDK默认处理通知消息,则自定义参数将会通过Intent传递给相应的Activity。以下是SDK将参数放入Intent的代码:


private Intent addMessageToIntent(Intent intent, UMessage msg)
{
    if (intent == null || msg == null || msg.extra == null)
        return intent;


    for (Entry<String, String> entry : msg.extra.entrySet())
    {
        String key = entry.getKey();
        String value = entry.getValue();
        if (key!=null)
            intent.putExtra(key, value);
    }
    return intent;
}
开发者可以在相应的Activity中通过以下代码获得传递的参数:


Bundle bun = getIntent().getExtras();
if (bun != null)
{
    Set<String> keySet = bun.keySet();
    for (String key : keySet) {
        String value = bun.getString(key);
        ...
    }
}

您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

【报错必看】程序来源失败/新浪精简版授权失败C8998/
问题描述: 1.分享提示程序来源失败,请下载正确的第三方客户端2.新浪微博授权跳转到授权界面不动提示C8998
友盟5.0以下注册时报错
调用PushAgent的register方法报错[/backcolor] java.lang.NoClassDefFoundError: com.umeng.message.ut
集成推送register抛出异常!!!!!
报错内容就是图片 application中只调用了register

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表