五一放了8天假,本来打算更新下主题的,结果迷上了美剧,偏偏这美剧还TM特别长,看完一季又一季,搞得我现在都没看完,最终导致主题更新了一点小功能,下次再发布吧。上班第一天写了一天代码,分享下今天上班用到的东西。极光推送PHP服务器端发送安卓APP客户端接收,简单来说就是一个消息推送,大佬别说要自己部署推送服务的话,不觉得浪费成本吗?所以还是使用第三方推送服务吧。
为什么选择极光推送?
我很懒,谁简单谁方便谁的文档容易看懂我就用谁的。综合比较后,只有极光推送符合我的要求,腾讯百度这种大公司的文档实在是伤透脑筋,果断放弃。
安卓客户端集成极光推送SDK
现在的Android studio比eclipse强大太多了,只需要添加云端仓库中的依赖,编译器就会自动集成SDK到你的项目中,所以第一步,在 module 的 gradle 中添加依赖。
复制
implementation 'cn.jiguang.sdk:jpush:3.2.0' implementation 'cn.jiguang.sdk:jcore:1.2.7'
仅仅如此还不够,还需要AndroidManifest 的替换变量。
复制
defaultConfig { applicationId "com.zdhcsc.daimadog.hl" //JPush上注册的包名. ndk { //选择要添加的对应cpu类型的.so库。 abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' // 还可以添加 'x86', 'x86_64', 'mips', 'mips64' } manifestPlaceholders = [ JPUSH_PKGNAME: applicationId, //JPush上注册的包名. JPUSH_APPKEY : "appkey", //JPush上注册的包名对应的appkey. JPUSH_CHANNEL: "channel", //暂时填写默认值即可. ] }
然后添加广播和权限,用来接收消息通知。
复制
<receiver android:name=".JPushReceiver" android:enabled="true"> <intent-filter> <!-- Required 用户注册SDK的intent --> <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!-- Required 用户接收SDK消息的intent --> <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!-- Required 用户接收SDK通知栏信息的intent --> <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!-- Required 用户打开自定义通知栏的intent --> <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!-- 接收网络变化 连接/断开 since 1.6.3 --> <action android:name="cn.jpush.android.intent.CONNECTION" /> <category android:name="com.zdhcsc.daimadog.hl" /> </intent-filter> </receiver>
在你的activity.java中使用如下代码初始化极光推送并注册用户标签。
复制
JPushInterf