什么是【预定义通知消息】?什么是【自定义通知消息】?为什么点击【预定义通知消息】,不回调onNotificationMessageClicked()方法?今天,小编就带你聊聊【预定义通知消息】和【自定义通知消息】的那些事!
预定义通知消息是指用户点击消息后的响应被预先定义,这些响应包括打开应用、打开网页以及打开应用内指定页面。
自定义通知消息又称【非预定义通知消息】,是指在用户点击消息后,SDK会将消息中携带的数据传递给应用,由应用自定义响应行为。
预定义&自定义差异相同点:
都会在通知栏上展示,客户端会回调onNotificationMessageArrived()方法(前提是应用正在前台或后台运行)。
不同点:
用户点击后只有自定义通知消息才会回调onNotificationMessageClicked()方法,预定义消息则不会回调此方法。
推送方式 Java SDK方式 预定义通知消息1. 打开当前app对应的Launcher Activity:
服务端SDK调用Message.Builder 类的extra(String key, String value) 方法,将key设置为Constants.EXTRA_PARAM_NOTIFY_EFFECT,value设置为Constants.NOTIFY_LAUNCHER_ACTIVITY。
2. 打开当前app内任意一个Activity:
服务端SDK调用Message.Builder 类的extra(String key, String value) 方法,将key设置为Constants.EXTRA_PARAM_NOTIFY_EFFECT,value设置为Constants.NOTIFY_ACTIVITY。
3. 打开网页:
服务端SDK调用Message.Builder 类的extra(String key, String value) 方法,将key设置为Constants.EXTRA_PARAM_NOTIFY_EFFECT,value设置为Constants.NOTIFY_WEB。
详细参见《服务端Java SDK文档》中的“预定义通知栏通知的点击行为”文档(请复制到浏览器打开):
https://dev.mi.com/console/doc/detail?pId=1278#_3_2
自定义通知消息服务端SDK无需调用Message.Builder 类的extra(String key, String value)方法,不设置Constants.EXTRA_PARAM_NOTIFY_EFFECT 的值表示为【自定义通知消息】。
Rest API 方式预定义通知消息通过设置extra.notify_effect 值以得到不同的预定义点击行为。
“1″:通知栏点击后打开app的Launcher Activity。
“2″:通知栏点击后打开app的任一Activity(开发者还需要传入extra.intent_uri )。
“3″:通知栏点击后打开网页(开发者还需要传入extra.web_uri )。
详细参见《服务器API地址以及参数》中的“表 1-1. Android POST参数说明“文档(请复制到浏览器打开):
https://dev.mi.com/console/doc/detail?pId=1163#_0_1
自定义通知消息【自定义通知消息】不需要回调extra.notify_effect 参数,也不需要设置extra.notify_effect 值。
推送运营平台 预定义通知消息在”推送运营平台–>推送工具->推送内容->点击后续动作”中根据业务需求分别选择“打开应用”、“打开网页”、“打开应用内指定页面”。
自定义通知消息在”推送运营平台–>推送工具->推送内容->点击后续动作”中选择“由应用客服端自定义”。
洗脑小剧场推送通知栏消息,当点击后续动作设置为打开应用时,为什么不回调onNotificationMessageClicked() 方法?
因为消息指定了行为"打开应用"(属于预定义消息), 所以不会回调onNotificationMessageClicked()方法,只有【自定义通知消息】会通过此方法回调。
服务端如何设置【自定义通知消息】?
服务端SDK中不设置Constants.EXTRA_PARAM_NOTIFY_EFFECT的值就表示为【自定义通知消息】,所以无需调用Message.Builder类的extra(String key, String value)方法。
如有问题,欢迎随时联系我们:
https://dev.mi.com/mipush/feedback/fe/ 扫码 关注M ER RY CH RIS TM AS这个圣诞我想和你过