最近了解到了极光推送,写个简单的介绍
极光推送官网:https://www.jiguang.cn/accounts/platform
首先你的去官网申请开发者账号
填写包名后下载demo试一下(包名填写后不可更改,谨慎选择)
这里这个要新建一个项目,包名注意与官网填写一样哦,,在mainfest中设置网络权限
然后 import modul 导入demo
然后再后台推送消息就行了
这里一般都没问题,很简单,不做过多介绍
下面你需要阅读下SDK集成文档 https://docs.jiguang.cn/jpush/client/Android/android_guide/
网上很多是手动集成,我觉得太麻烦了,自动集成就行了
开始新建项目,同样注意包名一样。
在gradle(module)下添加
ndk {
//选择要添加的对应cpu类型的.so库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a','x86', 'x86_64', 'mips', 'mips64'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "3c5eb75a5979a4b6be4efad6", //JPush上注册的包名对应的appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
在dependencies下添加
compile 'cn.jiguang.sdk:jpush:3.1.1' // 此处以JPush 3.1.1 版本为例。
compile 'cn.jiguang.sdk:jcore:1.1.9' // 此处以JCore 1.1.9 版本为例。
这里是jcenter自动下载,我们不需要管他,Android studio中新建项目应该都有jcenter
接下来我们需要新建一个MyApplication类,很简单,这是官网给出的代码
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
}
新建MyReceiver 其实不用MyReceiver也可以接收到推送,只是等下设置点击事件就不行了
MyReceiver 继承广播BroadcastReceiver
onReceiver里面的代码是官网给的,我们复制进去就行
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())) {
String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
Log.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);
}else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
Log.d(TAG, "收到了自定义消息。消息内容是:" + bundle.getString(JPushInterface.EXTRA_MESSAGE));
// 自定义消息不会展示在通知栏,完全要开发者写代码去处理
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
Log.d(TAG, "收到了通知");
// 在这里可以做些统计,或者做些其他工作
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
Log.d(TAG, "用户点击打开了通知");
// 在这里可以自己写代码去定义用户点击后的行为
Intent intent1 = new Intent(context, TestActivity.class); //自定义打开的界面
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
} else {
Log.d(TAG, "Unhandled intent - " + intent.getAction());
}
}
我们可以在这里使用Intent传递信息,使点击后传到另一个Activity或者是其他东西去。
Intent intent1 = new Intent(context, TestActivity.class); //自定义打开的界面
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
我这里是新建了一个TestActivity 在我的项目布局里可以看到
最后我们来配置AndroidMainfest.xml文件
1.网络权限
<uses-permission android:name="android.permission.INTERNET"/>
2.注意包名一致
3.
<service android:name="cn.jpush.android.service.PushService" android:process=":multiprocess" tools:node="replace" > service> <receiver android:name="MyReceiver" android:enabled="true"> <intent-filter> <action android:name="cn.jpush.android.intent.REGISTRATION" /> <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <action android:name="cn.jpush.android.intent.CONNECTION" /> <category android:name="com.example.你的包名" /> intent-filter> receiver>
最后Sync Project以下,就会自动集成极光推送的一些必要文件
相比手动集成在manfest和gradle中加一堆的代码就很简单了
随后上结果图
推送:
收到消息:
点击事件:跳转到另一个界面
demo下载地址:https://download.csdn.net/download/qq_36332133/10480688