iOS推送消息總結(jié)(極光推送,百度云推送,騰訊推送)

基本概念

從技術(shù)而言,信息推送是一項以數(shù)據(jù)挖掘、自然語言處理以及互聯(lián)網(wǎng)等多門技術(shù)為基礎(chǔ)的綜合性方向。將合適的信息推送給合適的人奇适,是一項極具挑戰(zhàn)的工作。這個過程需要對信息作充分的分析芦鳍,并對人的興趣嚷往、行為做細(xì)致的刻畫,并對兩者進(jìn)行有效匹配柠衅。

推送原理

推送原理.png

圖中皮仁,Provider是指某個iPhone軟件的Push服務(wù)器,這篇 文章我將使用百度云推送服務(wù)作為Provider。
APNS 是Apple Push Notification Service(Apple Push服務(wù)器)的縮寫贷祈,是蘋果的服務(wù)器趋急。

上圖可以分為三個階段。

第一階段:Push服務(wù)器應(yīng)用程序把要發(fā)送的消息势誊、目的iPhone的標(biāo)識打包呜达,發(fā)給APNS。

第二階段:APNS在自身的已注冊Push服務(wù)的iPhone列表中粟耻,查找有相應(yīng)標(biāo)識的iPhone查近,并把消息發(fā)到iPhone。

第三階段:iPhone把發(fā)來的消息傳遞給相應(yīng)的應(yīng)用程序挤忙, 并且按照設(shè)定彈出Push通知霜威。

各平臺交互機(jī)制.png

從上圖我們可以看到推送的幾個過程步驟分為以下五步:
a. 應(yīng)用程序注冊消息推送
b. IOS跟Push Server要device Token,應(yīng)用程序接受device Token.
c. 應(yīng)用程序?qū)evice Token發(fā)送給PUSH服務(wù)端程序.
d. 服務(wù)端程序向APNS服務(wù)發(fā)送消息.
e. APNS服務(wù)將消息發(fā)送給iPhone應(yīng)用程序.

證書配置

在蘋果開發(fā)者網(wǎng)站中設(shè)置應(yīng)用程序的APP ID,申請推送證書(開發(fā)環(huán)境,生產(chǎn)環(huán)境),配置文件.修改項目中Info.plist中的Bundle ID和證書中的Bundle ID一致

下載百度云SDK并導(dǎo)入相關(guān)的依賴庫.

以下以百度云推送為例在Appdelegate中作相應(yīng)的demo配置.

創(chuàng)建應(yīng)用

在常用的第三方推送平臺創(chuàng)建應(yīng)用,并綁定標(biāo)識,添加之前申請的推送證書,獲取到key值;

項目中配置推送消息

在Appdelegate中導(dǎo)入BPush.h, 并在- -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中添加一下代碼,并修改apiKey為剛才創(chuàng)建應(yīng)用所得appKey,推送模式為開發(fā)模式

// iOS8 下需要使用新的 API

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
        UIUserNotificationType myTypes = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;

        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:myTypes categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    }else {
        UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound;
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
    }

    #warning 測試 開發(fā)環(huán)境 時需要修改BPushMode為BPushModeDevelopment 需要修改Apikey為自己的Apikey

    // 在 App 啟動時注冊百度云推送服務(wù),需要提供 Apikey
    [BPush registerChannel:launchOptions apiKey:<#在百度云推送官網(wǎng)上注冊后得到的apikey#> pushMode:BPushModeDevelopment withFirstAction:nil withSecondAction:nil withCategory:nil isDebug:YES];

添加以下3個方法

// 在 iOS8 系統(tǒng)中饭玲,還需要添加這個方法侥祭。通過新的 API 注冊推送服務(wù)

  • (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
    {
    [application registerForRemoteNotifications];
    }
  • (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
    {
    NSLog(@"test:%@",deviceToken);
    [BPush registerDeviceToken:deviceToken];
    [BPush bindChannelWithCompleteHandler:nil];
    }

// 當(dāng) DeviceToken 獲取失敗時叁执,系統(tǒng)會回調(diào)此方法

  • (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
    {
    NSLog(@"DeviceToken 獲取失敗茄厘,原因:%@",error);
    }

##在百度云推送后臺創(chuàng)建一個通知測試
  請選擇開發(fā)模式,然后填寫要發(fā)送的消息內(nèi)容,然后發(fā)送消息給應(yīng)用程序.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谈宛,隨后出現(xiàn)的幾起案子次哈,更是在濱河造成了極大的恐慌,老刑警劉巖吆录,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窑滞,死亡現(xiàn)場離奇詭異,居然都是意外死亡恢筝,警方通過查閱死者的電腦和手機(jī)哀卫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撬槽,“玉大人此改,你說我怎么就攤上這事≈度幔” “怎么了共啃?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長暂题。 經(jīng)常有香客問我移剪,道長,這世上最難降的妖魔是什么薪者? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任纵苛,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攻人。我一直安慰自己幔虏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布贝椿。 她就那樣靜靜地躺著想括,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烙博。 梳的紋絲不亂的頭發(fā)上瑟蜈,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機(jī)與錄音渣窜,去河邊找鬼铺根。 笑死,一個胖子當(dāng)著我的面吹牛乔宿,可吹牛的內(nèi)容都是我干的位迂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼详瑞,長吁一口氣:“原來是場噩夢啊……” “哼掂林!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起坝橡,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤泻帮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后计寇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锣杂,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年番宁,在試婚紗的時候發(fā)現(xiàn)自己被綠了元莫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝶押,死狀恐怖踱蠢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情播聪,我是刑警寧澤朽基,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站离陶,受9級特大地震影響稼虎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜招刨,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一霎俩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦打却、人聲如沸杉适。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猿推。三九已至,卻和暖如春捌肴,著一層夾襖步出監(jiān)牢的瞬間蹬叭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工状知, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留秽五,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓饥悴,卻偏偏與公主長得像坦喘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子西设,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 極光推送: 1.JPush當(dāng)前版本是1.8.2瓣铣,其SDK的開發(fā)除了正常的功能完善和擴(kuò)展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,719評論 10 16
  • 前言:現(xiàn)在第三方推送也很多 济榨,比如極光坯沪,融云绿映,信鴿擒滑,其原理也是相同利用APNS推送機(jī)制 ,前段公司讓做自己的推送叉弦,...
    OliviaZqy閱讀 2,953評論 0 5
  • 概述 在多數(shù)移動應(yīng)用中任何時候都只能有一個應(yīng)用程序處于活躍狀態(tài)丐一,如果其他應(yīng)用此刻發(fā)生了一些用戶感興趣的那么通過通知...
    莫離_焱閱讀 6,512評論 1 8
  • 前言:現(xiàn)在第三方推送也很多 ,比如極光淹冰,融云库车,信鴿,其原理也是相同利用APNS推送機(jī)制 樱拴,前段公司讓做自己的推送柠衍,...
    _方丈閱讀 21,342評論 15 133
  • 我嫉妒你的愛氣勢如虹 像個人氣居高不下的天后 你要的不是我而是一種虛榮 有人疼才顯得多么出眾 你說突然想到這首歌 ...
    菀卿閱讀 372評論 0 0