有些朋友觉得集成这些东西是很繁琐很麻烦的一件事情,有些人觉得不就是看看文档照着来一遍就OK的事情吗?我觉得一篇详细而简洁的集成步骤才是入门人最需要的。
一、添加资源
这里我自动跳过了申请账号的步骤:
首先,下载一份官方demo
然后,打开demo,将里面需要的资源CV到我们的项目中
1.解压缩 jpush-android--3.x.x-release.zip 集成压缩包。
2.复制 libs/jcore-android-1.x.x.jar 到工程 libs/ 目录下。
3.复制 libs/jpush-android-3.x.x.jar 到工程 libs/ 目录下。
4.复制 libs/(cpu-type)/libjcore1xy.so 到你的工程中存放对应cpu类型的目录下。
5.复制 res/ 中drawable-hdpi, layout, values文件夹中的资源文件到你的工程中 res/ 对应同名的目录下。
说明 1:若没有res/drawable-xxxx/jpush_notification_icon这个资源默认使用应用图标作为通知icon,在5.0以上系统将应用图标作为statusbar icon可能显示不正常,用户可定义没有阴影和渐变色的icon替换这个文件,文件名不要变。
说明 2:使用android studio的开发者,如果使用jniLibs文件夹导入so文件,则仅需将所有cpu类型的文件夹拷进去;如果将so文件添加在module的libs文件夹下,注意在module的gradle配置中添加一下配置:
android {
......
sourceSets {
main {
jniLibs.srcDirs = ['libs']
......
}
......
}
......
}
二、配置 AndroidManifest.xml
这里无论你是根据demo的里的Manifest也好还是官方文档也好,代码一定要注释一定要写好,以免东西太多,以后你自己都不知道那是哪了
付上极光文档的链接:极光推送文档
这里注意在图7和图8中涉及到两个不同的Receiver
一个是接收普通通知以及富媒体的Receiver,一个是自定义别名标签的Receiver,
这里的这两个receiver,都可以在官方demo中对应找到,直接复制,
将每个action对应逻辑,添加自己项目所需要的逻辑即可
在官方文档的“进阶教程”中的通知VS自定义中,可以直接看到示例代码,都是一样的
三、API及参数
在项目的Appliaction中调用,init 只需要在应用程序启动时调用一次该 API 即可。不明白可以参考官方demo
JPushInterface.setDebugMode(true);【项目上线要把调式模式改为false】
JPushInterface.init(this);
初始化推送服务:public static void init(Context context);【这个API就是上面说的初始化的调用】
停止推送服务:public static void stopPush(Context context);
恢复推送服务:public static void resumePush(Context context);
判断推送服务是否已经被停止public static boolean isPushStopped(Context context);
其他的API可以在官方文档中的“SDKAPI”中全部查看,这里不一一列举了
参数:
对于极光推送过来的消息,所对应的参数为哪些?
1.全局唯一ID:
Bundle bundle = intent.getExtras();
String title = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
2.保存服务器推送下来的消息的标题。对应 API 消息内容的 title 字段。Portal 推送消息界上不作展示
Bundle bundle = intent.getExtras();
String title = bundle.getString(JPushInterface.EXTRA_TITLE);
3.保存服务器推送下来的消息内容。对应 API 消息内容的 message 字段。对应 Portal 推送消息界面上的"自定义消息内容”字段。
Bundle bundle = intent.getExtras();
String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
4.附加字段:
Bundle bundle = intent.getExtras();
String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
5.唯一标识消息的ID,用于统计上报:
Bundle bundle = intent.getExtras();
String file = bundle.getString(JPushInterface.EXTRA_MSG_ID);
6.推送通知界面上的“通知标题”字段:
Bundle bundle = intent.getExtras();
String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);
7.推送通知界面上的“通知内容”字段:
Bundle bundle = intent.getExtras();
String content = bundle.getString(JPushInterface.EXTRA_ALERT);
8.富媒体通知推送下载的HTML的文件路径,用于展现WebView:
Bundle bundle = intent.getExtras();
String fileHtml = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_PATH);
9.富媒体通知推送下载的图片资源的文件名,多个文件名用 “,” 分开。 与 “JPushInterface.EXTRA_RICHPUSH_HTML_PATH” 位于同一个路径:
Bundle bundle = intent.getExtras();
String fileStr = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_RES);
String[] fileNames = fileStr.split(",");
总结:至此,我们常用的步骤就这么多了,需要更多的丰富内容,可以仔细的去再读一遍官方的文档
1、导入资源,配置Manifest
2、添加广播,可以copy官方文档实例代码,也可以copy官方demo
3、根据API初始化极光推送,在广播对应的action中,获取所需要的参数字段