公司準(zhǔn)備采用個推作為第三方推送平臺,我作為客戶端的頭號小鳥,掐指一算已經(jīng)畢業(yè) 0.1 年了,Leader 準(zhǔn)備把這個簡單而又獨(dú)立的功能點(diǎn)交給我來處理,我緊張兮兮的打開 官網(wǎng)集成文檔 學(xué)習(xí)了起來。其實(shí)早在自己大二的時(shí)候就集成過個推 SDK,溜達(dá)一圈又回來集成個推推送SDK了,發(fā)現(xiàn)現(xiàn)在的個推 SDK 與當(dāng)年相比,集成起來真的方便多了。這次集成的是Android推送SDK,希望這篇文章,可以讓同學(xué)們可以更加快捷的集成個推推送。
公司主營業(yè)務(wù):網(wǎng)站制作、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出河北免費(fèi)做網(wǎng)站回饋大家。我的師傅大鳥哥告訴我,集成各類 SDK 的第一步驟都是下載個 Demo,先把 Demo 跑起來看看是什么鬼。咱也不敢問,咱也不敢說,先去 下載個Demo玩玩。我選擇的是國內(nèi)版本的個推 SDK,大家可以自行選擇要下載的版本。使用 AS 3.1 把 Getui_SDK_Demo_AS_maven 這個工程直接運(yùn)行起來,出現(xiàn)了下面這個界面(此處已經(jīng)對我個人參數(shù)進(jìn)行了手動馬賽克)。
"/> 好了,按我大鳥哥的意思至少 demo 已經(jīng)成功運(yùn)行起來了,接下去就是去把上述的 APPID,APPKey 等參數(shù)換成自己的,那么這些參數(shù)又是怎么來的呢?
看完 Demo 后,慌兮兮打開官網(wǎng)集成文檔,原來那些參數(shù)是需要創(chuàng)建應(yīng)用才會獲得的,而 cid 是個推SDK 回調(diào)的,沒啥說的,那就 “注冊登錄-創(chuàng)建應(yīng)用-獲取配置” 三連擊
"/>
登入成功后,點(diǎn)擊我的應(yīng)用進(jìn)入,再接著點(diǎn)擊右上角的《創(chuàng)建應(yīng)用》就可以創(chuàng)建屬于自己的應(yīng)用了,因?yàn)槲乙呀?jīng)創(chuàng)建完成,所以此處有城墻一樣厚的馬賽克????????????
"/>
填寫自身 APP 的基礎(chǔ)信息
"/> 敲黑板!??!,iOS 是默認(rèn)不勾選的,聽說 iOS 有自帶的推送系統(tǒng)?先不管了,勾上再說,他們愛用不用。
由于我已經(jīng)注冊完成了,填完后的界面就要靠大家自行腦補(bǔ)了。應(yīng)用創(chuàng)建成功后,就可以查看我們創(chuàng)建的 APP 所綁定的配置信息了。
"/> 看到這里,我終于知道了之前 Demo 里面的那些配置信息是哪里來的了,為了保證我這些參數(shù)是有效的, 我還來了一波騷操作: 把 Demo 里面的工程的包名換成自己創(chuàng)建 APP 的包名,appid等信息也進(jìn)行了替換,發(fā)現(xiàn)成功拿到了 cid ,問了下他們技術(shù)支持,大概意思是 只要拿到 cid,集成就完成了 90 %?。?! ,鳥弟我激動的搓起了小手。后面的思路就清晰了,無非是把 Demo 里東西拷到自己的項(xiàng)目里面就完事了嘛。
我使用 Maven 的方式集成了 2.13.2.0 版本的 SDK,選用 Maven是為了方(偷)便(懶)的集成!如果是選擇手動集成的, 請瘋狂戳我 先看下他們的資料包的內(nèi)容
"/> 看這個資料包,發(fā)現(xiàn)要導(dǎo)入的東西還是蠻多的, 各種資源,我選擇了 Maven 集成,那么 jar 包& so 就無需導(dǎo)入了
allprojects { repositories { maven { url 'http://mvn.gt.igexin.com/nexus/content/repositories/releases' } } } 復(fù)制代碼
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.getui:sdk:2.13.2.0' } 復(fù)制代碼
依葫蘆畫瓢,這里就直接從 demo 那邊拷過來就行了 千萬千萬要小心,認(rèn)真核對每一個參數(shù),如果出現(xiàn)空格或者 Appid 與 AppKey寫反這類的 低級錯誤真的要檢查到哭????????????
manifestPlaceholders = [ GETUI_APP_ID : "你的 APPID", GETUI_APP_KEY : "你的 APP_KEY", GETUI_APP_SECRET : "你的 APP_SECRET" ] 復(fù)制代碼
千萬千萬別忘了,我之前就在這個地方踩了坑,使用 maven 集成就不再需要 so 文件,切記!
可選可不選的權(quán)限,我這邊是寫上了,因?yàn)槲翼?xiàng)目中正好也需要用到這些權(quán)限,美滋滋~
<!-- 支持iBeancon 需要藍(lán)牙權(quán)限 --> <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <!-- 支持個推3.0 電子圍欄功能 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 復(fù)制代碼
Demo 里面還配置了自定義的 service,我也搞了后,官網(wǎng)上有這么一句話
為了讓推送服務(wù)在部分主流機(jī)型上更穩(wěn)定運(yùn)行,從2.9.5.0版本開始,個推支持第三方應(yīng)用配置使用自定義Service來作為推送服務(wù)運(yùn)行的載體
都這么說了,鳥弟我二話不說就 new 一個自定義服務(wù),進(jìn)行空實(shí)現(xiàn)即可
package com.xinwenwang.xy; import com.igexin.sdk.PushService; public class XyPushService extends PushService { } 復(fù)制代碼
新建的 service 千萬別忘了把新建的 service 注冊到 AndroidManifest.xml 中,多么痛的領(lǐng)悟
<service android:name="com.xxxx.yyyy.XyPushService" android:exported="true" android:label="PushService" android:process=":pushservice"> </service> 復(fù)制代碼
深入一想也可以理解為啥要加個空實(shí)現(xiàn)的 service,就像集成微信分享一樣,微信分享也要求繼承一個指定的 activity。
這么一步步的走下來,要配置挺多東西的,終于要開始初始化 SDK 了 ?????♀??????♀??????♀?
com.igexin.sdk.PushManager.getInstance().initialize(getApplicationContext(), com.xxxx.yyyy.XyPushService.class); 復(fù)制代碼
我這邊是在開屏頁初始化個推推送的,大家可以隨意,只要在 activity 初始化即可, 建議是初始化越早越好
那么問題來了,搞了上面這么多東西,推送的消息或者透傳是怎么個接收法呢?一頭霧水有木有!我又跑回去看了看 Demo,發(fā)現(xiàn)還有個叫 DemoIntentService 的玩意,打開一看里面有很多很多的回調(diào),鳥哥說的話果然帶勁呀, Demo 理解透,項(xiàng)目集成快! 建議大家直接把 Demo 中的 DemoIntentService 拷到自己的項(xiàng)目中,如果需要修改一些DemoIntentService 里面的內(nèi)容,自便哈。記得修改個名字,不然放在自己的項(xiàng)目里面真的太 low 了!我暫名為 XyPushIntentService。
<!-- 用戶自定義服務(wù)繼承自GTIntentService,作為SDK與APP橋梁服務(wù),用來接收各種消息和命令回復(fù)--> <service android:name=".XyPushIntentService" android:permission="android.permission.BIND_JOB_SERVICE"/> 復(fù)制代碼
// XyPushIntentService 為第三方自定義的推送服務(wù)事件接收類 PushManager.getInstance().registerPushIntentService(getApplicationContext(), XyPushIntentService.class); 復(fù)制代碼
總算集成完了,導(dǎo)入上述東西需要細(xì)心些哈,漏了一步有的你難受的。 項(xiàng)目跑起來后,在 XyPushIntentService 會有 cid 的回調(diào),最直觀的方法是在 logcat 里面輸入 clientid ,就可以看到在控制臺輸出日志了, 這個 clientID 相當(dāng)于此 APP 在該設(shè)備上的唯一識別碼。
"/> 最后一步肯定是創(chuàng)建通知了。 "/>
"/>
這邊只是創(chuàng)建了一個最最最簡單的樣式僅供參考,我看這界面上的功能估計(jì)可以滿足各種運(yùn)營的玩法了,我這邊就不獻(xiàn)丑了:)。 推送測試消息的時(shí)候,應(yīng)用一定要在前臺,在前臺,在前臺,重要的事情說三遍
#尾聲 首次集成這類大型 SDK 讓我意想不到的順利,我和我的小伙伴們都????驚呆了????,后面我再仔細(xì)閱讀了下個推的文檔,他們家的功能還是很齊全的,我僅是進(jìn)行了最基礎(chǔ)的集成而已,不過也可以滿足產(chǎn)品與運(yùn)營的需求了。不得不提一句,他們的技術(shù)支持服務(wù)確實(shí)夠勁(此處確實(shí)是一條廣告實(shí)錘了~),回復(fù)的快而準(zhǔn)?,F(xiàn)在我得趕緊去寫 Bug 了,告辭????????????~~~
原文鏈接: blog.csdn.net/u013651405/… 作者:吃飽了想睡
行業(yè)前沿、移動開發(fā)、數(shù)據(jù)建模等干貨內(nèi)容,盡在公眾號:個推技術(shù)學(xué)院
分享文章:震驚!安卓推送SDK集成居然如此簡單!-創(chuàng)新互聯(lián)
鏈接分享:http://jinyejixie.com/article18/dijegp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、自適應(yīng)網(wǎng)站、微信公眾號、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容