【友盟+】开发者社区

推送 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);
        ...
    }
}

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

本版积分规则

发表主题

精彩推荐

【报错必看】微信您的应用签名不正确,请去微信后台确认
微信如果提示这个错误,请查看debug日志: 箭头所指的为你当前应用的签名及包名,然后打开你的微信后台
自定义事件有消息数量,却看不到详情
集成都是OK的,能看到自定义事件的消息数量。却看不到详细的详情。 总是显示数据无法加载,稍后重试。
关于自定义事件的那些事儿
各位友盟的小伙伴,友盟君又来普及知识啦,上次写了一篇关于渠道使用的那些事,反馈还不错,为了能让大家更

关注我们

新浪微博
微信

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

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