|
/

集成小米厂商通道打开指定activity如何传递参数

JJ*
发布于 5 年前
5100
消息推送 U-Push
API调用

"payload": {

"display_type": "notification",

"body": {

"ticker": "测试推送小米",

"text": "测试推送小米",

"title": "测试推送小米",

"after_open": "go_activity",

"activity": "com.XXXXXXActivity",

"play_sound": true,

"play_lights": true,

"play_vibrate": true

},

"extra": {

"fireHotId": "6219af1f-683c-4a43-a9d9-299d9a49e9ab"

}

}

友盟通道有extra传递参数

小米通道只有mi_activity添加,如何传递参数

5个回答
 
5 年前

辅助弹窗

App进程退出后,可通过辅助弹窗(UmengNotifyClickActivity)接收推送消息:


public class MfrMessageActivity extends UmengNotifyClickActivity {

private static final String TAG = "MfrMessageActivity";

@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_push);
}

@Override
public void onMessage(Intent intent) {
super.onMessage(intent);
Bundle bundle = intent.getExtras();
if (bundle != null) {
Log.d(TAG, "bundle: " + bundle);
}
String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
Log.d(TAG, "body: " + body);
if (!TextUtils.isEmpty(body)) {
runOnUiThread(() -> ((TextView) findViewById(R.id.tv)).setText(body));
}
}
}

在AndroidManifest.xml中注册MfrMessageActivity:


<activity
android:name="com.umeng.message.demo.mfr.MfrMessageActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${applicationId}"
android:path="/thirdpush"
android:scheme="agoo" />
</intent-filter>
</activity>

消息发送

在【友盟+】推送平台发送通知时,勾选厂商通道,并填写Activity类的完整路径(Activity需继承UmengNotifyClickActivity,例如:com.umeng.message.demo.mfr.MfrMessageActivity)。

 
5 年前

在推送消息的时候勾选厂商通道,https://upush.umeng.com/apps/list,然后试试可以不

 
5 年前

跳转activity时,不是就可以支持intent传参吗?

 
5 年前

使用API前需要在管理后台的App应用信息页面获取 Appkey 和 App Master Secret,同时在管理后台添加服务器IP地址做IP白名单安全验证或关闭IP白名单。如下图:

调用地址

POST (Content-Type: application/json)

http接口:http://msg.umeng.com/api/send?sign=mysign

https接口:https://msgapi.umeng.com/api/send?sign=mysign

调用参数-Android


{
"appkey":"xx", // 必填,应用唯一标识
"timestamp":"xx", // 必填,时间戳,10位或者13位均可,时间戳有效期为10分钟
"type":"xx", // 必填,消息发送类型,其值可以为:
// unicast-单播
// listcast-列播,要求不超过500个device_token
// filecast-文件播,多个device_token可通过文件形式批量发送
// broadcast-广播
// groupcast-组播,按照filter筛选用户群,请参照filter参数
// customizedcast,通过alias进行推送,包括以下两种case:
// -alias:对单个或者多个alias进行推送
// -file_id:将alias存放到文件后,根据file_id来推送
"device_tokens":"xx", // 当type=unicast时,必填,表示指定的单个设备
// 当type=listcast时,必填,要求不超过500个,以英文逗号分隔
"alias_type":"xx", // 当type=customizedcast时,必填
// alias的类型, alias_type可由开发者自定义,开发者在SDK中调用setAlias(alias, alias_type)时所设置的alias_type
"alias":"xx", // 当type=customizedcast时,选填(此参数和file_id二选一)
// 开发者填写自己的alias,要求不超过500个alias,多个alias以英文逗号间隔
// 在SDK中调用setAlias(alias, alias_type)时所设置的alias
"file_id":"xx", // 当type=filecast时,必填,file内容为多条device_token,以回车符分割
// 当type=customizedcast时,选填(此参数和alias二选一)
// file内容为多条alias,以回车符分隔。注意同一个文件内的alias所对应的alias_type必须和接口参数alias_type一致
// 使用文件播需要先调用文件上传接口获取file_id,参照"文件上传"
"filter":{}, // 当type=groupcast时,必填,用户筛选条件,如用户标签、渠道等,参考附录G
// filter的内容长度最大为3000B
"payload":{ // 必填,JSON格式,具体消息内容(Android最大为1840B)
"display_type":"xx", // 必填,消息类型: notification(通知)、message(消息)
"body":{ // 必填,消息体
// 当display_type=message时,body的内容只需填写custom字段
// 当display_type=notification时,body包含如下参数:
"title":"xx", // 必填,通知标题
"text":"xx", // 必填,通知文字描述

// 自定义通知图标:
"icon":"xx", // 可选,状态栏图标ID,R.drawable.[smallIcon],
// 如果没有,默认使用应用图标
// 图片要求为24*24dp的图标,或24*24px放在drawable-mdpi下
// 注意四周各留1个dp的空白像素
"largeIcon":"xx", // 可选,通知栏拉开后左侧图标ID,R.drawable.[largeIcon]
// 图片要求为64*64dp的图标
// 可设计一张64*64px放在drawable-mdpi下
// 注意图片四周留空,不至于显示太拥挤
"img":"xx", // 可选,通知栏大图标的URL链接。该字段的优先级大于largeIcon
// 厂商通道消息,目前只支持华为,链接需要以https开头不符合此要求则通过华为通道下发时不展示该图标。[华为推送](https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References-V5/https-send-api-0000001050986197-V5#ZH-CN_TOPIC_0000001050986197__section165641411103315 "华为推送")搜索“图片”即可找到关于该参数的说明
// 该字段要求以http或者https开头,图片建议不大于100KB。
"expand_image":"xx", // 消息下方展示大图,支持自有通道消息展示
// 厂商通道展示大图目前仅支持小米,要求图片为固定876*324px,仅处理在友盟推送后台上传的图片。如果上传的图片不符合小米的要求,则通过小米通道下发的消息不展示该图片,其他要求请参考小米推送文档[小米富媒体推送](https://dev.mi.com/console/doc/detail?pId=1278#_3_3 "小米富媒体推送")

// 自定义通知声音:
"sound":"xx", // 可选,通知声音,R.raw.[sound]
// 如果该字段为空,采用SDK默认的声音,即res/raw/下的
// umeng_push_notification_default_sound声音文件。如果SDK默认声音文件不存在,则使用系统默认Notification提示音

// 自定义通知样式:
"builder_id": xx, // 可选,默认为0,用于标识该通知采用的样式。使用该参数时
// 开发者必须在SDK里面实现自定义通知栏样式
//角标,当前只支持华为厂商通道
"badge": 5 , //可选,没有默认值。角标设置数字,范围为1-99。如果设置的值不在此区间该参数值将被忽略,需配合main_activity使用,具体说明参考main_activity

// 通知到达设备后的提醒方式(注意,"true/false"为字符串):
"play_vibrate":"true/false", // 可选,收到通知是否震动,默认为"true"
"play_lights":"true/false", // 可选,收到通知是否闪灯,默认为"true"
"play_sound":"true/false", // 可选,收到通知是否发出声音,默认为"true"

//点击"通知"的后续行为(默认为打开app):
"after_open":"xx", // 可选,默认为"go_app",值可以为:
// "go_app":打开应用
// "go_url":跳转到URL
// "go_activity":打开特定的activity
// "go_custom":用户自定义内容
"url":"xx", // 当after_open=go_url时,必填
// 通知栏点击后跳转的URL,要求以http或者https开头
"activity":"xx", //当after_open=go_activity时,必填。
// 通知栏点击后打开的Activity
"custom":"xx"/{}, // 当display_type=message时,必填
// 当display_type=notification且after_open=go_custom时,必填
// 用户自定义内容,可以为字符串或者JSON格式。
},
extra:{ // 可选,JSON格式,用户自定义key-value。
// 可以配合消息到达后,打开App/URL/Activity使用
"key1":"value1",
"key2":"value2",
...
}
},
"policy":{ // 可选,发送策略
"start_time":"xx", // 可选,定时发送时,若不填写表示立即发送
// 定时发送时间不能小于当前时间
// 格式:"yyyy-MM-dd HH:mm:ss"
// 注意,start_time只对任务类消息生效
"expire_time":"xx", // 可选,消息过期时间,其值不可小于发送时间或者start_time(如果填写了的话)
// 如果不填写此参数,默认为3天后过期。格式同start_time
"max_send_num": xx, // 可选,发送限速,每秒发送的最大条数。最小值1000
//开发者发送的消息如果有请求自己服务器的资源,可以考虑此参数
"out_biz_no":"xx" // 可选,消息发送接口对任务类消息的幂等性保证
// 强烈建议开发者在发送任务类消息时填写这个字段,友盟服务端会根据这个字段对消息做去重避免重复发送
// 同一个appkey下面的多个消息会根据out_biz_no去重,不同发送任务的out_biz_no需要保证不同,否则会出现后发消息被去重过滤的情况
// 注意,out_biz_no只对任务类消息有效
},
"production_mode":"true/false", // 可选,true正式模式,false测试模式。默认为true
// 测试模式只对“广播”、“组播”类消息生效,其他类型的消息任务(如“文件播”)不会走测试模式
// 测试模式只会将消息发给测试设备。测试设备需要到web上添加
// Android:测试设备属于正式设备的一个子集
"description":"xx", // 可选,发送消息描述,建议填写

"channel_properties":{ // 可选,厂商通道相关的特殊配置
"channel_activity":"xxx", //系统弹窗,只有display_type=notification时有效,表示华为、小米、oppo、vivo、魅族的设备离线时走系统通道下发时打开指定页面acitivity的完整包路径。
"xiaomi_channel_id":"", // 小米channel_id,具体使用及限制请参考小米推送文档 https://dev.mi.com/console/doc/detail?pId=2086
"vivo_classification":"1", // vivo消息分类:0运营消息,1系统消息,需要到vivo申请,具体使用及限制参考[vivo消息推送分类功能说明]https://dev.vivo.com.cn/documentCenter/doc/359
"oppo_channel_id":"xx" , // 可选, android8以上推送消息需要新建通道,否则消息无法触达用户。push sdk 6.0.5及以上创建了默认的通道:upush_default,消息提交厂商通道时默认添加该通道。如果要自定义通道名称或使用私信,请自行创建通道,推送消息时携带该参数具体可参考[oppo通知通道适配] https://open.oppomobile.com/wiki/doc#id=10289
"main_activity":"xx" //可选,应用入口Activity类全路径,主要用于华为通道角标展示。具体使用可参考[华为角标使用说明]https://developer.umeng.com/docs/67966/detail/272597
}
}

 
5 年前

楼主

APP上看https://developer.umeng.com/docs/67966/detail/98589#h1--push-2

后端看https://developer.umeng.com/docs/67966/detail/68343#h1-u6D88u606Fu53D1u90014

Loading ...
登录社区,分享你的经验