几乎每个项目都会用到推送吧!我从2015年起到现在其中极光推送用了N次了,最近项目又要用到极光推送,刚好又要做网易博客迁移所以来复习一下。但距离上次使用是在2年前联想的项目上,翻了翻笔记,如图:
记得当时的项目推送弄得挺费劲的,先是我自己弄了个官网的但后来经过沟通说,要用我们联想内部的推送功能,它是在官网的基础上套了一层叫“乐推送”,而写后台的人是其他部门的,大公司是很好很规范但中间要走很多的流程,这效率真不敢恭维了!为了方便查阅使用而且下次很快就能搞定这个功能,我决定还是写一篇文章整理整理当初的笔记,一来当做分享二来方便自己查阅修改,比起在电脑中找文件文档笔记还是要方便很多的,这也是我写博客的初衷,好了废话不多说步入正题!
我实践成功源码地址:https://download.csdn.net/download/yudbl/10843855
极光官网:https://www.jiguang.cn/
极光官方文档:http://docs.jiguang.cn/resources/
创建成功,如下图:(记住保密AppKey、Master Secret,我的是示例等下删除就无所谓了!)
点击“完成推送设置”,输入“应用包名” 对应 “项目清单文件的主包名”
点击下载Demo
下载完成后,建一个文件夹,把压缩包解压,如下图:
客户端 SDK 下载
点击 Android SDK概述—>Android 客户端 SDK 下载—>Android SDK 下载
下载后,解压
浏览器后退,找到:Android SDK 集成指南—>手动集成步骤
导入jar包:
打开解压后的“jpush-android-3.1.7-release” 或 “JPushExample(1143290)”,找到libs文件夹
全选里面的资源文件 复制到 自己的项目工程里面的libs文件夹里面
导入so文件:
使用 android studio 的开发者,如果使用 jniLibs 文件夹导入 so 文件,则仅需将所有 cpu 类型的文件夹拷进去;如果将 so 文件添加在 module的libs 文件夹下,注意在 module 的 gradle 配置中添加一下配置:sourceSets.main.jniLibs.srcDirs = ['libs']
这时候在项目工程中就可以看到多了一个 “jniLibs” 文件夹
导入res资源文件:
找到解压后的 jpush-android-3.1.7-release—>example—>res,复制 res/ 中 drawable-hdpi, layout, values 文件夹中的资源文件到你的工程中 res/ 对应同名的目录下。
如果是项目开发中后期集成,难免会跟自己的项目资源文件有更多同名的,自己视情况是否替换、修改、追加。作为一个开发者应该很简单,不要急躁!
【如我项目初期的操作:
drawable-hdpi文件夹: 一般只有 ic_launcher.png 同名,我不复制过去
layout文件夹: 一般不会同名,都复制过去
values文件夹:
jpush_style.xml复制过去,strings.xml、styles.xml 有同名把内容追加在后面,可以用editplus、sublime Text等编辑器打开,更好查看追加!
】
配置 AndroidManifest.xml
###官网给出的主要步骤为:
根据 SDK 压缩包里的 AndroidManifest.xml 样例文件,来配置应用程序项目的 AndroidManifest.xml 。
1、复制备注为 “Required” 的部分
2、将标注为“您应用的包名”的部分,替换为当前应用程序的包名
3、将标注为“您应用的 Appkey” 的部分,替换为在 Portal 上创建该应用后应用信息中的 Appkey,例如:9fed5bcb7b9b87413678c407
***###我通过分析,自己的主要步骤为: ***
找到下载解压后的 jpush-android-3.1.7-release—>example—>AndroidManifest.xml,用editplus或sublime文件编辑工具打开,然后开始复制操作:
1、极光的这些代码 不替换自己程序的: manifest标签
2、极光的这些代码 不替换自己程序的: application标签程序入口相关
3、极光的这些代码 不替换自己程序的:activity标签入口activity主程序
4、把极光 permission权限 复制进去
5、把极光 组件注册代码 复制进去
6、把极光 meta-data标签 复制进去
7、搜索“您应用的包名”替换成当前项目主包名
8、找到下载解压后的 jpush-android-3.1.7-release—>example—>src,在自己的项目新建包名“com.example.jpushdemo”
把极光解压后demo中src下里面的java文件全部复制到此包里面
这时候PushSetActivity可能会报错,那是因为引入图片方式还是eclipse时候的方式,极光推送的开发工程师也够懒的没有更新!我们把引入图片“drawable”改成“mipmap”吧!如下:
// builder.addJPushAction(R.drawable.jpush_ic_richpush_actionbar_back, "first", "my_extra1");
builder.addJPushAction(R.mipmap.jpush_ic_richpush_actionbar_back, "first", "my_extra1");
10、配置混淆文件
在 proguard-rules.pro 文件中加入混淆代码
-dontoptimize
-dontpreverify
-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
-keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; }
-dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; }
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true); //正式环境时去掉此行代码
JPushInterface.init(this);
}
}
然后在 AndroidManifest.xml 文件中关联MyApplication
运行项目基本上不会报错了:
唯一报错的就是AndroidStudio图片引入方式要从
@drawable/ic_launcher 改成 @mipmap/ic_launcher,把你从极光样例程序复制进来的xml文件都改改就可以了!