1;登录极光推送官方 https://www.jiguang.cn/
2:创建应用
3:填写项目的包名。保存后下载Demo
4:下载Demo,保存,并且复制出 AppKey
5:项目集成极光
//激光推送
implementation'cn.jiguang.sdk:jpush:3.4.1' // 此处以JPush 3.4.1 版本为例。
implementation'cn.jiguang.sdk:jcore:2.2.4' // 此处以JCore 2.2.4 版本为例。
在主 gradle 中配置了jcenter支持
6:在 module 的 gradle 中添加依赖和AndroidManifest的替换变量。
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters'armeabi','armeabi-v7a','arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY :"1fc8c7b8f2ca496fe4700187",//JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL:"developer-default",//暂时填写默认值即可.
]
7:配置清单文件AndroidManifest,
说明:直接打开第三步下载好的Demo 复制就行,不需要自己配置
复制权限: 因为是保存在下载好的demo。人家都自动配置好了。包名什么的都已经给配置好了。直接复制就好。
复制receiver: 下载的demo里面全有。直接复制就好。花里胡哨的。有的不需要。也有注释说明。复制。复制。复制
如果有红色的报错。暂时先不管,。暂时先不管。先复制
8:初始化:
在Application的onCreate()里面写入初始化方法。俩句代码而已。复制。复制
JPushInterface.setDebugMode(true); // 设置开启日志,发布时请关闭日志
JPushInterface.init(this); // 初始化 JPush
9:从demo中复制几个类。都是直接生成好的:
具体不需要的可以直接不要,暂时先复制上。回头不需要了。在去掉也可以。
在这个TestActivity里面。显示的就是通知的信息。比如现在收到推送了。当你点击的时候。你就会跳转到这个TestActivity里面。标题和内容都有。、
当然这只是测试。暂时先跳转这个activity而已。想和哪里跳转可以在以下图,任意修改。并带数据过去。
在你的主MainActivity里面复制以下
在下载的Demo的主MainActivity找到有关isForeground的所有代码,和MessageReceiver的代码。复制到你的项目中。
//极光推送需要的
public static boolean isForeground =false;
@Override
protected void onResume() {
isForeground =true;
super.onResume();
}
@Override
protected void onPause() {
isForeground =false;
super.onPause();
}
//for receive customer msg from jpush server
private MessageReceivermMessageReceiver;
public static final StringMESSAGE_RECEIVED_ACTION ="你的包名.MESSAGE_RECEIVED_ACTION";
public static final StringKEY_TITLE ="title";
public static final StringKEY_MESSAGE ="message";
public static final StringKEY_EXTRAS ="extras";
public void registerMessageReceiver() {
mMessageReceiver =new MessageReceiver();
IntentFilter filter =new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(MESSAGE_RECEIVED_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
}
public class MessageReceiverextends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
String messge = intent.getStringExtra(KEY_MESSAGE);
String extras = intent.getStringExtra(KEY_EXTRAS);
StringBuilder showMsg =new StringBuilder();
showMsg.append(KEY_MESSAGE +" : " + messge +"\n");
if (!ExampleUtil.isEmpty(extras)) {
showMsg.append(KEY_EXTRAS +" : " + extras +"\n");
}
// setCostomMsg(showMsg.toString());
RxToast.success(context.toString());
}
}catch (Exception e) {
}
}
}
//极光推送需要的 end