永发信息网

Hbuilder集成个推时Android和ISO中推送的区别

答案:1  悬赏:40  手机版
解决时间 2021-01-28 03:39
Hbuilder集成个推时Android和ISO中推送的区别
最佳答案
功能说明
JPush SDK 收到推送,通过广播的方式,转发给开发者App,这样开发者就可以灵活地进行处理。
这个动作不是必须的。用户有需要才定义 Receiver 类来处理 SDK过来的广播。
如果不做这个动作,即不写自定义 Receiver,也不在 AndroidManifest.xml 里配置这个 Receiver,则默认的行为是:
接收到推送的自定义消息,则没有被处理
可以正常收到通知,用户点击打开应用主界面
接受广播
如果全部类型的广播都接收,则需要在 AndroidManifest.xml 里添加如下的配置信息:

android:name="Your Receiver"
android:enabled="true">










每个 Receiver action 详细解释如下。
Action - cn.jpush.android.intent.REGISTRATION
SDK 向 JPush Server 注册所得到的注册 ID 。
一般来说,可不处理此广播信息。
要深入地集成极光推送,开发者想要自己保存App用户与JPush 用户关系时,则接受此广播,取得 Registration ID 并保存与App uid 的关系到开发者自己的应用服务器上。
使用极光推送提供的别名与标签功能,是更加简单轻便的绑定App用户与JPush用户的方式,请参考文档:别名与标签使用教程。
Intent 参数
JPushInterface.EXTRA_REGISTRATION_ID
SDK 向 JPush Server 注册所得到的注册 全局唯一的 ID ,可以通过此 ID 向对应的客户端发送消息和通知。

Bundle bundle = intent.getExtras();
String title = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);

Action - cn.jpush.android.intent.MESSAGE_RECEIVED
收到了自定义消息 Push 。
SDK 对自定义消息,只是传递,不会有任何界面上的展示。
如果开发者想推送自定义消息 Push,则需要在 AndroidManifest.xml 里配置此 Receiver action,并且在自己写的 BroadcastReceiver 里接收处理。
Intent 参数
JPushInterface.EXTRA_TITLE
保存服务器推送下来的消息的标题。
对应 API 消息内容的 title 字段。
对应 Portal 推送消息界面上的“标题”字段(可选).

Bundle bundle = intent.getExtras();
String title = bundle.getString(JPushInterface.EXTRA_TITLE);

JPushInterface.EXTRA_MESSAGE
保存服务器推送下来的消息内容。
对应 API 消息内容的 message 字段。
对应 Portal 推送消息界面上的"消息内容”字段。

Bundle bundle = intent.getExtras();
String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);

JPushInterface.EXTRA_EXTRA
保存服务器推送下来的附加字段。这是个 JSON 字符串。
对应 API 消息内容的 extras 字段。
对应 Portal 推送消息界面上的“自定义内容”。

Bundle bundle = intent.getExtras();
String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);

JPushInterface.EXTRA_CONTENT_TYPE
保存服务器推送下来的内容类型。
对应 API 消息内容的 content_type 字段。

Bundle bundle = intent.getExtras();
String type = bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE);

JPushInterface.EXTRA_RICHPUSH_FILE_PATH
SDK 1.4.0 以上版本支持。
富媒体通消息推送后的文件路径和文件名。

Bundle bundle = intent.getExtras();
String file = bundle.getString(JPushInterface.EXTRA_RICHPUSH_FILE_PATH);

JPushInterface.EXTRA_MSG_ID

SDK 1.6.1 以上版本支持。
唯一标识消息的 ID, 可用于上报统计等。

Bundle bundle = intent.getExtras();
String file = bundle.getString(JPushInterface.EXTRA_MSG_ID);

Action - cn.jpush.android.intent.NOTIFICATION_RECEIVED
收到了通知 Push。

如果通知的内容为空,则在通知栏上不会展示通知。但是,这个广播 Intent 还是会有。开发者可以取到通知内容外的其他信息。

Intent 参数
JPushInterface.EXTRA_NOTIFICATION_TITLE

保存服务器推送下来的通知的标题。
对应 API 通知内容的 n_title 字段。
对应 Portal 推送通知界面上的“通知标题”字段。

Bundle bundle = intent.getExtras();
String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);

JPushInterface.EXTRA_ALERT

保存服务器推送下来的通知内容。
对应 API 通知内容的 n_content 字段。

对应 Portal 推送通知界面上的“通知内容”字段。

Bundle bundle = intent.getExtras();
String content = bundle.getString(JPushInterface.EXTRA_ALERT);

JPushInterface.EXTRA_EXTRA
SDK 1.2.9 以上版本支持。
保存服务器推送下来的附加字段。这是个 JSON 字符串。
对应 API 通知内容的 n_extras 字段。
对应 Portal 推送通知界面上的“自定义内容”字段。

Bundle bundle = intent.getExtras();
String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);

JPushInterface.EXTRA_NOTIFICATION_ID
SDK 1.3.5 以上版本支持。
通知栏的Notification ID,可以用于清除Notification

Bundle bundle = intent.getExtras();
int notificationId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);

JPushInterface.EXTRA_CONTENT_TYPE
保存服务器推送下来的内容类型。
对应 API 消息内容的 content_type 字段。
Portal 上暂时未提供输入字段。

Bundle bundle = intent.getExtras();
String type = bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE);

JPushInterface.EXTRA_RICHPUSH_HTML_PATH
SDK 1.4.0 以上版本支持。
富媒体通知推送的HTML的文件路径,用于展现WebView。

Bundle bundle = intent.getExtras();
String fileHtml = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_PATH);

JPushInterface.EXTRA_RICHPUSH_HTML_RES

SDK 1.4.0 以上版本支持。
富媒体通知推送的图片资源的文件名,多个文件名用 “,” 分开。 与 “JPushInterface.EXTRA_RICHPUSH_HTML_PATH” 位于同一个路径。

Bundle bundle = intent.getExtras();
String fileStr = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_RES);
String[] fileNames = fileStr.spilt(",");

JPushInterface.EXTRA_MSG_ID

SDK 1.6.1 以上版本支持。
唯一标识通知消息的 ID, 可用于上报统计等。

Bundle bundle = intent.getExtras();
String file = bundle.getString(JPushInterface.EXTRA_MSG_ID);

Action - cn.jpush.android.intent.NOTIFICATION_OPENED
用户点击了通知。
一般情况下,用户不需要配置此 receiver action。
如果开发者在 AndroidManifest.xml 里未配置此 receiver action,那么,SDK 会默认打开应用程序的主 Activity,相当于用户点击桌面图标的效果。
如果开发者在 AndroidManifest.xml 里配置了此 receiver action,那么,当用户点击通知时,SDK 不会做动作。开发者应该在自己写的 BroadcastReceiver 类里处理,比如打开某 Activity 。
Intent 参数
JPushInterface.EXTRA_NOTIFICATION_TITLE
保存服务器推送下来的通知的标题。
对应 API 通知内容的 n_title 字段。
对应 Portal 推送通知界面上的“通知标题”字段。

Bundle bundle = intent.getExtras();
String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);

JPushInterface.EXTRA_ALERT
保存服务器推送下来的通知内容。
对应 API 通知内容的n_content字段。
对应 Portal 推送通知界面上的“通知内容”字段。

Bundle bundle = intent.getExtras();
String content = bundle.getString(JPushInterface.EXTRA_ALERT);

JPushInterface.EXTRA_EXTRA
SDK 1.2.9 以上版本支持。
保存服务器推送下来的附加字段。这是个 JSON 字符串。
对应 API 消息内容的 n_extras 字段。
对应 Portal 推送通知界面上的“自定义内容”字段。

Bundle bundle = intent.getExtras();
String type = bundle.getString(JPushInterface.EXTRA_EXTRA);

JPushInterface.EXTRA_NOTIFICATION_ID

SDK 1.3.5 以上版本支持。
通知栏的Notification ID,可以用于清除Notification

Bundle bundle = intent.getExtras();
int notificationId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID

JPushInterface.EXTRA_MSG_ID

SDK 1.6.1 以上版本支持。
唯一标识调整消息的 ID, 可用于上报统计等。

Bundle bundle = intent.getExtras();
String file = bundle.getString(JPushInterface.EXTRA_MSG_ID);

代码示例

public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Log.d(TAG, "onReceive - " + intent.getAction());

if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {

} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
System.out.println("收到了自定义消息。消息内容是:" + bundle.getString(JPushInterface.EXTRA_MESSAGE));
// 自定义消息不会展示在通知栏,完全要开发者写代码去处理
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
System.out.println("收到了通知");
// 在这里可以做些统计,或者做些其他工作
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
System.out.println("用户点击打开了通知");
// 在这里可以自己写代码去定义用户点击后的行为
Intent i = new Intent(context, TestActivity.class); //自定义打开的界面
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

} else {
Log.d(TAG, "Unhandled intent - " + intent.getAction());
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
喜来快递(安岳县运营中心)地址有知道的么?有
润色衣橱地址在什么地方,想过去办事
有人认为,古代罗马一定程度上克服了古代希腊
四川顺鑫回通物流有限公司地址在什么地方,我
琢琱的意思是什么啊?知道的请说下!
实验中的平行样的数据怎么处理?需要算出什么
爱仕达地址有知道的么?有点事想过去
奥康(凤翔街)地址有知道的么?有点事想过去
小学英语根据答语写问句1.It is eight o'cloc
乐视智能手机里的照片删了怎么恢复
秀大的意思是什么啊?知道的请说下!
烟台按个铁通2兆 的玩网游怎么样 有在烟台按
如果把考试成绩115分记作 15分那么90分记作多
我2017年考研,工科专硕过了国家线20分,一志
安岳县昱诚货物运输有限公司地址在什么地方,
推荐资讯
红豆黑豆做枕头用了好不好
交通信用卡刚批下来。还没到手上现在在路上。
融资租赁和普通租赁的区别?
电影《群星会》有几部,分别有哪些明星?
【求助】怎么样才能看出一个人对数字高度敏感
请问2013年5月20日大写怎么写,20日前面到底
什么软件可以在安卓手机关机的情况下连接到手
三星手机读取银行卡信息后 为什么看不到信息
求安卓图片裁剪工具,能设定比例或大小,要用
CO、 CO2、 O2、 H2各自是否溶于水?
为什么跑完长跑后会嗓子痛,发热,一喘气就痒
考察成语掌握情况,可以怎么出题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?