iOS開發(fā)——iOS靜默推送介紹及使用場景

靜默推送

先來看下普通推送和靜默推送的區(qū)別:

普通推送:收到推送后(有文字有聲音),點開通知土居,進入APP后枣购,才執(zhí)行-- (void)application:(UIApplication didReceiveRemoteNotification:(NSDictionary fetchCompletionHandler:(void result))handler *)application *)userInfo (^)(UIBackgroundFetchResult

靜默推送:收到推送(沒有文字沒有聲音),不用點開通知擦耀,不用打開APP坷虑,就能執(zhí)行(void)application:(UIApplication )application)userInfo didReceiveRemoteNotification:(NSDictionary fetchCompletionHandler:(void (^)(UIBackgroundFetchResultresult))handler,用戶完全感覺不到

所以靜默推送又被我們稱做 Background Remote Notification(后臺遠程推送)埂奈。靜默推送是在iOS7之后推出的一種推送方式。它與其他推送的區(qū)別在于允許應(yīng)用收到通知后在后臺(background)狀態(tài)下運行一段代碼定躏,可用于從服務(wù)器獲取內(nèi)容更新账磺。功能使用場景:(多媒體)聊天,Email更新痊远,基于通知的訂閱內(nèi)容同步等功能垮抗,提升了終端用戶的體驗。

所以我們對于靜默推送的定義就是:后臺遠程推送碧聪,允許應(yīng)用在收到通知后在后臺運行一段代碼冒版,且能夠馬上執(zhí)行-- (void)application:(UIApplication didReceiveRemoteNotification:(NSDictionary fetchCompletionHandler:(void result))handler *)application *)userInfo (^)(UIBackgroundFetchResult代理方法的一種推送方式

通過下面兩張圖片你就可以很清楚地看出靜默推送和其他遠程推送的區(qū)別:

Paste_Image.png
a

靜默推送的使用:

靜默推送不僅在定義上和其他的推送方式不同,在推送內(nèi)容上也和其他推送不同逞姿。在后臺給應(yīng)用的推送內(nèi)容中只要滿足下面的條件辞嗡,該推送就是靜默推送:
****如果只攜帶content-available: 1 不攜帶任何badge,sound 和消息內(nèi)容等參數(shù)滞造,則可以不打擾用戶的情況下進行內(nèi)容更新等操作即為“Silent Remote Notifications”****续室。
下面我們通過Easy APNs Provider模擬推送軟件看下靜默推送的內(nèi)容格式:

Paste_Image.png

靜默推送的使用場景

假設(shè)我們現(xiàn)在有下面的需求:****用戶打開你的app,然后把你的app壓到后臺谒养。這個時候如果你的app是有IM功能的闷袒,且即時通訊是用XMPP協(xié)議夜焦,或者MQTT協(xié)議扩灯,那你的即時通訊此時是會斷開長連接的(應(yīng)用處于后臺會斷開長連接)改执,其他用戶發(fā)消息給你,而你的的IM此時斷開長連接毡泻,那么你就不會收到別人發(fā)給你的消息的推送****。
上面場景的解決辦法有兩個,

一:別人發(fā)消息給你其實是發(fā)到后臺话侄,后臺再發(fā)送給你。那么你如果想你的應(yīng)用在后臺時其他用戶發(fā)消息給你仍然可以出現(xiàn)推送苛败,那你可以讓后臺在給用戶發(fā)消息的時候满葛,順便將聊天內(nèi)容發(fā)個推送給用戶的app。這樣罢屈,用戶應(yīng)用在后臺時別人發(fā)消息給他他就會收到消息推送嘀韧。但是這么做有個問題:會增加后臺的工作量,且浪費用戶的流量缠捌〕可以想象下,如果你的應(yīng)用有1000萬活躍用戶曼月,當(dāng)1000萬用戶同時進行聊天的時候谊却,后臺不僅需要發(fā)送消息,還要發(fā)送消息的推送哑芹,這就相當(dāng)于后臺需要承擔(dān)多一倍的任務(wù)量炎辨。當(dāng)大量進行數(shù)據(jù)收發(fā)的時候,就會容易出現(xiàn)問題聪姿。

二:我們可以利用靜默推送:當(dāng)后臺需要發(fā)送第一條消息給應(yīng)用處于后臺狀態(tài)用戶的時候碴萧,可以先給用戶發(fā)送一個靜默推送,將用戶的app喚醒末购,這個時候應(yīng)用有20秒的時候可以用來處理消息破喻。讓應(yīng)用在收到消息后,再去發(fā)送一個本地的推送盟榴,提醒用戶有其他用戶給他發(fā)了消息曹质。這樣就能減少后臺的任務(wù)量。

所以如果你的推送使用的是原生的APNS消息推送擎场,IM功能使用的是XMPP,MQTT協(xié)議羽德,處理后臺IM消息推送的時候就可以通過靜默推送來完成消息的推送。極光推送本身也是這樣進行處理的顶籽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玩般,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子礼饱,更是在濱河造成了極大的恐慌坏为,老刑警劉巖究驴,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異匀伏,居然都是意外死亡洒忧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門够颠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熙侍,“玉大人,你說我怎么就攤上這事履磨◎茸ィ” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵剃诅,是天一觀的道長巷送。 經(jīng)常有香客問我,道長矛辕,這世上最難降的妖魔是什么笑跛? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮聊品,結(jié)果婚禮上飞蹂,老公的妹妹穿的比我還像新娘。我一直安慰自己翻屈,他們只是感情好陈哑,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伸眶,像睡著了一般芥颈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赚抡,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音纠屋,去河邊找鬼涂臣。 笑死,一個胖子當(dāng)著我的面吹牛售担,可吹牛的內(nèi)容都是我干的赁遗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼族铆,長吁一口氣:“原來是場噩夢啊……” “哼岩四!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哥攘,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤剖煌,失蹤者是張志新(化名)和其女友劉穎材鹦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耕姊,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡桶唐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茉兰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尤泽。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖规脸,靈堂內(nèi)的尸體忽然破棺而出坯约,到底是詐尸還是另有隱情,我是刑警寧澤莫鸭,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布闹丐,位于F島的核電站,受9級特大地震影響黔龟,放射性物質(zhì)發(fā)生泄漏妇智。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一氏身、第九天 我趴在偏房一處隱蔽的房頂上張望巍棱。 院中可真熱鬧,春花似錦蛋欣、人聲如沸航徙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽到踏。三九已至,卻和暖如春尚猿,著一層夾襖步出監(jiān)牢的瞬間窝稿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工凿掂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伴榔,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓庄萎,卻偏偏與公主長得像踪少,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子糠涛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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

  • 極光推送: 1.JPush當(dāng)前版本是1.8.2援奢,其SDK的開發(fā)除了正常的功能完善和擴展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,719評論 10 16
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理忍捡,服務(wù)發(fā)現(xiàn)集漾,斷路器切黔,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 寫作原因:網(wǎng)上看了很多推送文章都沒有完美的解答我的疑惑;主要有以下兩點帆竹,1:推送來了我點擊應(yīng)用圖標(biāo)進入應(yīng)用怎么取到...
    Thebloodelves閱讀 4,508評論 26 71
  • 推送通知注意:這里說的推送通知跟NSNotification有所區(qū)別NSNotification是抽象的绕娘,不可見的...
    醉葉惜秋閱讀 1,515評論 0 3
  • 不同版本極光推送SDK集成各有差異,集成時一定要注意版本號栽连,樓主已將博文更新成最新的SDK JPush v3.0....
    i順頌時宜閱讀 7,860評論 37 170