Android完美推送功能总结+集成极光推送

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/f552126367/article/details/79961260

1、前言

1、现在的Android推送功能使用的越来越广泛,许多app都想加一个推送功能,也出现了好多第三方推送服务如:极光、百度云推送、个推、友盟、网易云推送等。我本人是使用过百度云推送、个推和极光推送。百度云推送感觉最差,基本上关了程序到达率太低。极光推送网上说比较好,但是用了以后在开启APP的情况下和个推都能很快到达,但是关了APP后感觉没有个推到达率高,有人问为什么微信的推送这么厉害,基本都能推送到,这个谁让微信牛呢,各大厂商都对微信的推送做了不杀死处理,所以你即使关了微信也能立即收到,效果等同于厂商自己的推送。

2、虽然要写一篇集成极光推送的文章,但是真正好的推送应该是第三方+手机厂商自带的推送,因为手机自带的推送服务手机后台不会kill掉,保活率高。所以想集成一个好的推送可以是:小米+华为+魅族+第三方推送这四个一起集成。这三个厂商的手机推送将会立即到达,Android市场占有率超过40%。而服务器端只需要三种方式都推送,Android端根据自己的系统来加载要推送的SDK即可。

华为推送功能网址:https://mp.csdn.net/postedit/84180870

小米推送功能网址:https://blog.csdn.net/f552126367/article/details/84065630

3、去极光逛网注册一个账号:https://www.jiguang.cn/?hmsr=%E5%93%81%E4%B8%933&hmpl=logo&hmcu=&hmkw=&hmci=;然后创建一个应用:

4、可以下载demo进行查看,也可以下载我集成到studio的项目进行查看:https://download.csdn.net/download/f552126367/10352575

5、将给的demo的类全部考到自己的工程中,将AndroidManifest.xml里的所有数据拷贝到自己的工程中,注意修改包名和权限。

6、将demo中的jar包烤包到自己的libs文件夹下,然后引入,然后将armeabi全部考入到jniLis文件夹下,如下图所示:

7、在build中加入引入内容:

 

//极光推送的jar包
compile files('libs/jcore-android-1.2.0.jar')
compile files('libs/jpush-android-3.1.2.jar')
ndk {
    abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64"
}

8、在自己写的Application中加入初始化功能,

 

//极光推送初始化功能
JPushInterface.setDebugMode(true);     // 设置开启日志,发布时请关闭日志
JPushInterface.init(this);            // 初始化 JPush

9、记得在APP首页写一个接收的方法

 

registerMessageReceiver();  // used for receive msg
/*设置极光推送接收方法*/
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 MessageReceiver extends 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());
            }
        } catch (Exception e){
        }
    }
}

private void setCostomMsg(String msg){
    showToast(msg);
}

10、仿照给的demo,将用户名设置为别名或者标签,则后台可以直接通过这两个的任意一个进行推送到手机上。

//设置alias
case R.id.bt_setalias:
    alias = getInPutAlias();
    if(TextUtils.isEmpty(alias)){
        return;
    }
    isAliasAction = true;
    action = ACTION_SET;
    break;

11、好了大功告成,慢慢补充修改推送样式和点击推送跳转的问题。

参看https://blog.csdn.net/nihaoqiulinhe/article/details/50697301;完善的是当点击通知时,跳转到指定的页面

阅读更多

扫码向博主提问

会飞的鱼儿android

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Android
  • kotlin
去开通我的Chat快问

没有更多推荐了,返回首页