您的位置:首页 > 其它

JPush极光推送详解

2016-10-19 22:26 369 查看

1.JPush的简单介绍

JPush是一种专业而免费的第三方云推送推送平台,又名极光推送,在同行中开发者对JPush较为青睐,哈哈,不仅仅是因为它是免费的,服务也是非常到位的。

2.JPush的集成步骤

1.新建一个工程,复制自己的应用包名。

2.登陆极光官网,注册用户并使用第一步中的应用包名创建自己的应用。

3.然后下载极光SDK,然后根据sdk中的AndroidManifest配置自己工程中的mainfest

参考开发文档:

①复制备注为 "Required" 的部分(列举部分,凡是备注Required都要复制到位)

<!-- Required  一些系统要求的权限,如访问网络等-->
<uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE"/>
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>


②将备注为替换包名的部分,替换为当前应用程序的包名



将需要替换成你自己的应用包名换成${application},相当于间接的填写了自己的应用包名

③将AppKey替换为在Portal上注册该应用的的Key

<meta-data
android:name="JPUSH_APPKEY"
android:value="00b190c0d9b4deb0e76445ba"/> <!--  </>值来自开发者平台取得的AppKey-->

这个appkey千万别忘了!

④配置receive

<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" />
<category android:name="hongda.zhangxing.com.jpushdemo" />
</intent-filter>
</receiver>

好了,manifest的配置就搞定了。

4.将SDK中libs目录中对应复制到自己的工程

①将jpush-android-2.2.0.j复制到自己工程的libs下

②在app-->src-->main下创建文件夹jniLibs,将SDK中libs目录下除了jar包之外的cpu文件拷贝到jniLibs中

5.推送的主要代码

①MainActivity.java中添加两行代码:

JPushInterface.setDebugMode(true);//测试版为true
JPushInterface.init(this);


②创建Receive

public class MyReceiver extends BroadcastReceiver {
private static final String TAG = "JPush";

@Override
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, MainActivity.class);  //自定义打开的界面
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
} else {
Log.d(TAG, "Unhandled intent - " + intent.getAction());
}
}
}


现在就阔以实现推送了。

6.进入极光控制后台:



点击推送,先发一条通知,编辑内容,进行推送(偷偷告诉你,在可选选项中可以对推送标题进行设置)

自定义标题:



推送效果图:



补充:推送成功logcat会有通知,点击了通知,logcat也会有相应的提示,那么之后的逻辑功能就需要我们强大的程序猿来开发喽!



这些提示当然是在Receiver中自定义的:



3.JPush的推送方式

1.通过标签按类型推送:

①在MainActivity中添加如下代码:

//设置Tag
Set<String> sets = new HashSet<String>() ;
sets.add("sport");
sets.add("music");
JPushInterface.setTags(this, sets, new TagAliasCallback() {
@Override
public void gotResult(int i, String s, Set<String> set) {
Log.d(TAG,"set tag result is"+i);
}
});

②在进行推送的时候,标明将要推送的Tag



2.通过别名Alias推送

①在MainActivity中添加如下代码:

//设置别名Alia
JPushInterface.setAlias(this, "zhangxing", new TagAliasCallback() {
@Override
public void gotResult(int i, String s, Set<String> set) {
Log.d(TAG,"set Alias result is"+i);
}
});

②在进行推送的时候,标明将要推送的Alias



3.通过Register ID推送,不过这个id一般都在极光后台,我们不好获取,这种就免了哈。

补充:这里我再对自定义消息说明一下,自定义消息不像通知一样显示在通知栏,它发生在应用程序内部,需要开发者自己去按需求去展示它高冷的姿态。
①点击自定义消息,推送一条自定义消息:



②点击推送后,通知栏并没有啥情况,这是毋庸置疑的,有情况才不正常了,那么可以在logcat中查看自定义消息是否真的被推送成功:



是不是推送成功了,是的,你猜对了!好了,今天的极光推送就到这里了,我是张星,欢迎关注。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息