您的位置:首页 > 其它

Jpush极光推送

2017-06-10 13:19 197 查看
极光推送是现在用的最好的一款第三方的SDK了,这里也就不废话了,直接上吧

1、首先就是需要进入极光开发者官网创建应用,需要填写项目的包地址,

2、然后创建成功之后在创建的该应用的应用信息里面点击推送设置,之后就可以看到android、ios、winphone这三个版本了,选择相应的版本,点击进去之后就可以看到一个demo包,

3、把这个demo包下载下来,然后这里就OK了,接下来就是进入我们的项目工程了

4、把下载好的demo包解压之后,把里面的libs两个jar包:jcore、jpush复制到工程文件的libs里面,5、然后在main里面新建一个文件夹jniLibs,把demo里面libs中的文件夹全部拷贝到main里面新建的文件夹之中,

6、因为工程中添加了两个jar包,所以同步一下到依赖中去,这个同步就不用介绍了吧接下就是配置文件了

7、把demo中的manifest文件打开,把里面的权限拷贝工程的manifest中,然后把里面的配置只要是标记了Required或者SDK核心功能的全部复制到自己的manifest中去,记得别忘了检查一下复制过来的权限、配置里面的包名是不是正确的,App Key是不是正确的,如果检查无误之后,那就开始写代码了

8、首先是MainActivity中,只需要在onCreate中写上几句话就OK了,

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


然后就是BroadcastReceiver:

public class MyReceiver extends BroadcastReceiver {
private static final String TAG = "JPush";
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
Log.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);
//send the Registration Id to your server...
} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushI
4000
nterface.EXTRA_MESSAGE));
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
Log.d(TAG, "[MyReceiver] 接收到推送下来的通知");
int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
Log.d(TAG, "[MyReceiver] 接收到推送下来的通知的ID: " + notifactionId);
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
Log.d(TAG, "[MyReceiver] 用户点击打开了通知");
//打开自定义的Activity
Intent i = new Intent(context, TestActivity.class);
i.putExtras(bundle);
//i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
context.startActivity(i);
} else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
Log.d(TAG, "[MyReceiver] 用户收到到RICH PUSH CALLBACK: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
//在这里根据 JPushInterface.EXTRA_EXTRA 的内容处理代码,比如打开新的Activity, 打开一个网页等..
} else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
Log.w(TAG, "[MyReceiver]" + intent.getAction() +" connected state change to "+connected);
} else {
Log.d(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction());
}
}
}


在BroadcastReceiver这个自定义类里面有一个自定

义的Activity,这里可以做一个跳转处理,打开状态通知栏之后,点击推送的通知消息就能自动跳转到自己想要去的界面,或者说做一些什么逻辑处理,

但是如果是跳转界面的话,在manifest中的注册界面注册应该这样写:

<activity android:name=".TestActivity"
android:exported="false">
<intent-filter>
<action android:name="jpush.testAction"/>
<category android:name="jpush.testCategory"/>
</intent-filter>
</activity>


然后就是去极光推送的官网进入控制后台进行测试了,看看是否能推送通知了

其实还可以设置标签推送,在MainActivity中添加下面代码:

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


然后在推送设置里面找到标签推送,把设置的标签写进去,发送信息就可以了,

设置Alias,在MainActivity中添加下面代码:

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


然后在推送设置里面找到alias推送,把设置的alias写进去,发送信息就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: