Jpush极光推送

极光推送是现在用的最好的一款第三方的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(JPushInterface.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写进去,发送信息就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值