MobPush集成心得

简介:

推送送是现在大部分应用都拥有的一项功能,使用推送的目的就是为了让用户接收到最新的消息以及提醒等,由于业务需求,所以了解下市面较受欢迎的SDK,今天就来总结下集成Mob的MobPush和环信的极光推送心得。

  1. 极光推送
    集成准备:

注册极光开发者账号添加应用获取AppKey。
_
2.集成方式(两种)。
(1)jcenter 自动集成步骤:使用jcenter自动集成的开发者,不需要在项目中添加jar和so,jcenter会自动完成依赖;在AndroidManifest.xml中不需要添加任何JPush SDK 相关的配置,jcenter会自动导入。(个人倾向于这种集成方式)
(2)手动导入SDK开发包:配置 AndroidManifest.xml ,不过这部分的内容有点多,官方有很详细的说明,这里就不做赘述了 http://docs.jiguang.cn/jpush/client/Android/android_guide/
(3)添加代码:使用通知

public class ExampleApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            JPushInterface.setDebugMode(true);
            JPushInterface.init(this);
        }
    }

    //使用通知,请参考以下示例代码。
    public class MyReceiver extends BroadcastReceiver {
        private static final String TAG = "MyReceiver";

        private NotificationManager nm;

        @Override
        public void onReceive(Context context, Intent intent) {
            if (null == nm) {
                nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            }

            Bundle bundle = intent.getExtras();
            Logger.d(TAG, "onReceive - " + intent.getAction() + ", extras: " + AndroidUtil.printBundle(bundle));

            if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
                Logger.d(TAG, "JPush用户注册成功");

            } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
                Logger.d(TAG, "接受到推送下来的自定义消息");

            } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals   (intent.getAction())) {
                Logger.d(TAG, "接受到推送下来的通知");             
                receivingNotification(context,bundle);

            } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals (intent.getAction())) {
                Logger.d(TAG, "用户点击打开了通知");
                openNotification(context,bundle);
            } else {
                Logger.d(TAG, "Unhandled intent - " + intent.getAction());
            }
        }

       private void receivingNotification(Context context, Bundle bundle){
            String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);
            Logger.d(TAG, " title : " + title);
            String message = bundle.getString(JPushInterface.EXTRA_ALERT);
            Logger.d(TAG, "message : " + message);
            String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
            Logger.d(TAG, "extras : " + extras);
        }

       private void openNotification(Context context, Bundle bundle){
            String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
            String myValue = "";
            try {
                JSONObject extrasJson = new JSONObject(extras);
                myValue = extrasJson.optString("myKey");
            } catch (Exception e) {
                Logger.w(TAG, "Unexpected: extras is not a valid json", e);
                return;
            }
            if (TYPE_THIS.equals(myValue)) {
                Intent mIntent = new Intent(context, ThisActivity.class);
                mIntent.putExtras(bundle);
                mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(mIntent);
            } else if (TYPE_ANOTHER.equals(myValue)){
                Intent mIntent = new Intent(context, AnotherActivity.class);
                mIntent.putExtras(bundle);
                mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(mIntent);
            }
        }
    }
  1. MobPush的集成
    1.集成准备:

注册Mob开发者账号添加应用获取AppKey。

_

2.集成方式(两种)。

(1)非maven方式集成,手动导入SDK开发包:配置 AndroidManifest.xml ,这里就是直接的拷贝代码而已很简单,而且官方有很详细的说明,这里也就不做赘述了。 http://wiki.mob.com/mobpush%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E9%9D%9Emaven/

(2)maven方式集成。(这个配置起来超级方便,个人强烈推荐使用这种方式集成)。 http://wiki.mob.com/mobpush-for-android/

1.将下面的脚本添加到您的根模块build.gradle中:

buildscript {
    // 添加MobSDK的maven地址
    repositories {
        maven {
            url "http://mvn.mob.com/android"
        }
    }

dependencies {
    // 注册MobSDK
    classpath 'com.mob.sdk:MobSDK:+'
    }
}

2.在使用MobPush模块的build.gradle中,添加MobSDK插件和扩展,如:

// 添加插件
apply plugin: 'com.mob.sdk'

// 在MobSDK的扩展中注册MobPush的相关信息
MobSDK {
    appKey "替换为mob官方申请的appkey"
    appSecret "替换为mob官方申请的appkey对应的appSecret"

    MobPush {}
}

添加代码:

初始化MobSDK

MobSDK.init(Activity.this);

MobPush推送的结果是通过监听消息回调给出,很简洁明了。

MobPush.addPushReceiver(new MobPushReceiver() {
    @Override
    public void onCustomMessageReceive(Context context, MobPushCustomMessage message) {
        //接收自定义消息
    }
    @Override
    public void onNotifyMessageReceive(Context context, MobPushNotifyMessage message) {
        //接收通知消息
    }

    @Override
    public void onNotifyMessageOpenedReceive(Context context, MobPushNotifyMessage message) {
        //接收通知消息被点击事件
    }
    @Override
    public void onTagsCallback(Context context, String[] tags, int operation, int errorCode) {
        //接收tags的增改删查操作
    }
    @Override
    public void onAliasCallback(Context context, String alias, int operation, int errorCode) {
        //接收alias的增改删查操作
    }
});

在退出已经设置了监听的界面时,调用移除监听接口:

MobPush.removePushReceiver(receiver);

至此,MobPush的配置和代码添加已经全部完成了,是不是有点过于方便简单快捷了呢。

个人心得
集成简易度对比:

个人觉得MobPush相对要简洁点,无论是后台注册创建应用还是代码添加都相对简洁一点,最贴心的是Mob在github开源了个Demo工程可以参考,这个非常好适合学习。 https://github.com/MobClub/MobPush-for-Android

SDK的体积:

MobPush的体积只有463k,极光推送的体积没有在其官网查询到。不过对于一个SDK就几百K大小是相当的小了,还没有一个资源图片大。

消息推送响应速度:

两款产品的响应速度都差不多,很快很及时,完全满足需求。

立体数据统计

Mob:用户量,推送数量,成功数量,点击数量,发送API调用数,详细的立体统计数据一览无余,有助于开发者实时监控并了解APP整体情况。

极光推送:由于这里集成的极光推送是免费试用的,无法查看具体的统计数据,查看统计数据是需要收费的。

免费试用

MobPush:开发者可免费使用推送服务和管理平台,而且Mob还会提供免费的技术服务,由于之前项目集成过Mob的SharesSDK用于分享和授权登录,所以对Mob的产品有一定的了解,完全的免费还提供很好的技术支持,这个确实是挺好的,好像市面上没有哪家了可以做到产品完全免费还提供优质的技术支持服务了,也挺好奇他们是怎么赢利的。

极光推送:极光推送也有免费的,但是免费的会有很多的限制,无法查看数据,不会提供技术支持等。这个也很正常,毕竟人家也是辛苦的开发出这款产品。

本人是位菜鸟,这也是我第一次尝试着写这样的相关博客,初学者或是感觉对你有用的你可以看一下,希望我的总结能给大家一点帮助。如若是大神的话就别喷我了,若有什么不足的地方,各位大神看到了还请多多指教。

目录
相关文章
|
Oracle 关系型数据库
集成平台即服务(iPaaS)软件
本文研究全球及中国市场集成平台即服务(iPaaS)软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
|
2月前
|
人工智能 运维 安全
聚焦API安全未来,F5打造无缝集成的解决方案
聚焦API安全未来,F5打造无缝集成的解决方案
81 26
|
2月前
|
缓存 JavaScript 前端开发
集成Nunjucks
集成Nunjucks
40 0
|
4月前
|
人工智能 并行计算 语音技术
fasterWhisper和MoneyPrinterPlus无缝集成
fasterWhisper是一款优秀的语音识别工具,现在它可以和MoneyPrinterPlus无缝集成了。
fasterWhisper和MoneyPrinterPlus无缝集成
|
6月前
|
监控 数据可视化 测试技术
集成阿里云 RPA 与现有系统
随着企业对自动化和数字化转型的需求不断增长,阿里云 RPA(机器人流程自动化)技术成为了提升业务效率和减少人工操作的重要工具。本文将介绍如何集成阿里云 RPA 与现有系统,以实现更高效的业务流程自动化。
|
6月前
|
资源调度 数据可视化 前端开发
基于mathlive从零将公式编辑器集成到可视化搭建平台
基于mathlive从零将公式编辑器集成到可视化搭建平台
180 0
|
消息中间件 XML 存储
集成的方式
系统集成-功能集成
111 0
|
消息中间件 存储 架构师
「集成架构」理解企业应用集成
「集成架构」理解企业应用集成
|
开发工具 Android开发
Android推送集成方案总结
刚做完推送集成方案,记录下坑。 这里记录的特性和使用时针对写blog时采用的sdk的,具体使用流程和限制还请参考官方给出的sdk. #### 1、推送规则 小米手机用小米推送; 华为手机用华为推送; 其他手机用友盟推送。
|
机器学习/深度学习 数据挖掘 开发者
集成| 学习笔记
快速学习集成。
集成| 学习笔记