(图文)手把手教你怎样集成极光推送

什么是推送
简单的说,移动端的推送服务就是服务器定时将消息送到给客户端的服务。
要达到这个效果有几种方式(Android端):
1.轮询
客户端每隔一段时间便向服务器发送一次请求,询问是否有新消息,如果有,则服务器将消息发送出来
优点:简单
缺点:轮询的单位时间如果长的话,则没有即时消息的效果,如果短的话,那客户端的压力就会很大,耗电,耗流量
2.SMS
以短信的方式向每个用户发送消息
优点:不需要网络
缺点:成本太高,一条短信一毛钱,一个百万级的APP,一次就是10w,当然,肯定是有折扣的。如果仅需要发送一两条这样的消息的话,还是能接受的,但是如果要每天来个五六条,老板:???????????
3.GCM服务
Google推出的云消息服务,Google Cloud Messaging,以前是C2DM,现在以及被GCM替代了
优点:Google亲儿子,原生,简单
缺点:国内用Google?
4.XMPP协议/MQTT协议
自己搭建一个推送服务
优点:功能强大
缺点:复杂,部署硬件成本高
5.使用第三方推送服务
导入SDK使用第三方的推送服务,比如极光推送,百度云推送,个推等等
优点:稳定,简单,开发成本低
缺点:毕竟用的是别人家的东西,总是有些顾虑的

综上所述,我们选择了使用第三方推送,这篇博客就是介绍其中的极光推送是如何使用的?
首先,打开极光推送的官网https://www.jiguang.cn/push
(图文)手把手教你怎样集成极光推送_第1张图片

注册登陆,然后点击SDK下载

(图文)手把手教你怎样集成极光推送_第2张图片

下载Android版本,解压,发现里面有这些东西

(图文)手把手教你怎样集成极光推送_第3张图片

好了,这个先放一边,然后打开AS,在自己应用的AndroidManifest文件或者gradle文件里找到自己应用的包名

这里写图片描述

然后回到网页,进入极光推送的App管理界面https://www.jiguang.cn/app/list

(图文)手把手教你怎样集成极光推送_第4张图片

在这里将自己的应用创建一下,其实就两个要填的,应用名和包名,图标可选可不选(不选就是默认的Logo)

(图文)手把手教你怎样集成极光推送_第5张图片

创建好之后将这个Appkey保存下来

这里写图片描述

然后就回到之前下载的SDK目录里面,打开libs文件夹,将里面的文件全部复制到AS里面

(图文)手把手教你怎样集成极光推送_第6张图片

然后在AS里面将两个Jar包添加依赖

compile files('libs/jcore-android_v1.0.0.jar')
compile files('libs/jpush-android_v3.0.0.jar')

然后再将SDK目录下的res文件夹里的文件全部复制到AS里面来

(图文)手把手教你怎样集成极光推送_第7张图片

这里最好一个文件一个文件的复制,以免出现错误(反正我是这么弄的-。-)
在资源都复制好之后要在module的gradle文件下添加几句代码( 要在android大标签里哟)

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
好了,执行完这些后就开始做配置工作的最后一步,将一大堆权限,组件,复制到你应用的AndroidManifest文件里面,记得要将自己的应用包名改上去

这里是权限

    
    <permission  android:name="您应用的包名.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />

    
    <uses-permission android:name="您应用的包名.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.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.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_TASKS" />

这里是组件
组件当然是都要写在application标签里面的,就像平常的Activity一样


        
        <service  android:name="cn.jpush.android.service.PushService" android:enabled="true" android:exported="false" >
            <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTER" />
                <action android:name="cn.jpush.android.intent.REPORT" />
                <action android:name="cn.jpush.android.intent.PushService" />
                <action android:name="cn.jpush.android.intent.PUSH_TIME" />
            intent-filter>
        service>

        
        
         <service  android:name="cn.jpush.android.service.DaemonService" android:enabled="true" android:exported="true">
             <intent-filter >
                 <action android:name="cn.jpush.android.intent.DaemonService" />
                 <category android:name="您应用的包名"/>
             intent-filter>
         service>

        
        <receiver  android:name="cn.jpush.android.service.PushReceiver" android:enabled="true" >
          <intent-filter android:priority="1000"> 
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /> 
                <category android:name="您应用的包名"/> 
            intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            intent-filter>
            
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
            intent-filter>
        receiver>

        
        <activity  android:name="cn.jpush.android.ui.PushActivity" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.NoTitleBar" android:exported="false" >
            <intent-filter>
                <action android:name="cn.jpush.android.ui.PushActivity" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="您应用的包名" />
            intent-filter>
        activity>

        
        <service  android:name="cn.jpush.android.service.DownloadService" android:enabled="true" android:exported="false" >
        service>

        
        <receiver android:name="cn.jpush.android.service.AlarmReceiver" />

然后最后还有两行,这也是要写在application标签里面的,这里面的应用的Appkey就是之前在网页创建应用时保存下来的Appkey

"JPUSH_CHANNEL" android:value="developer-default"/>
"JPUSH_APPKEY" android:value="您应用的Appkey"/>

OK
到这一步,整个集成已经完成了,就差最后一步调接口了
在自己应用的自定义Application类的onCreate()方法里面添加两行代码,
一般建议在自定义Application里初始化,当然也可以在主Activity里面进行初始化,

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

(图文)手把手教你怎样集成极光推送_第8张图片

不要忘了在最后在AndroidManifest文件中检查一下有没有哪里有遗漏的,比如还有”您应用的包名”没替换啦,比如application标签下忘记写name属性啦

这里写图片描述

好了,这样客户端就配置好了,接下来就在网页后台发个消息推送试试

进入https://www.jiguang.cn/push/app/这里是你应用的Appkey/push/notification
(图文)手把手教你怎样集成极光推送_第9张图片

接下来就简单了,输入信息,选上Android,点击发送~~~~~~~~~~~~

咚咚~~

然后你的应用就收到了一条推送通知

这样,极光推送的基本集成就完成了

你可能感兴趣的:((图文)手把手教你怎样集成极光推送)