iOS Remote Notification遠程訊息推送處理_IOS

來源:互聯網
上載者:User

遠程訊息推送處理情境有三種:分別是app還沒有運行、app在前台運行以及app在後台運行,下面介紹相關流程及三種情境下處理步驟

1.流程

(1)註冊通知

首先是在註冊遠程訊息推送,需要注意的是iOS8及以後的系統中註冊方法有所改變(同時認證設定以及push許可權也需要開啟)。這一步的目的是,允許app接收遠程訊息推送。

(2)綁定deviceToken

deviceToken相當於裝置的一個標識,伺服器根據這個標識來進行訊息推送。

①當使用者同意app接收遠程訊息推送後,手機會向APNs發起一個請求去擷取deviceToken;

②APNs收到請求,根據其相應流程及演算法發送對應的deviceToken給手機;

③手機再將deviceToken傳遞給app;

④app再將deviceToken發送到後台伺服器進行儲存。

後台伺服器以後就是根據deviceToken發送推送訊息給APNs,APNs再根據deviceToken將訊息推送到對應裝置,裝置再喚起app,顯示推送而來的訊息。

(3)針對遠程推送訊息進行處理

遠程推送訊息發送過來時,點開訊息常常會有一些針對性處理或流程,最常見的就是跳轉頁面等,這裡不再展開,下面將介紹不同情境下接收到推送後的處理步驟。

2.不同情境下推送訊息的流程

(1)app在前台運行時收到推送

會調用“didReceiveRemoteNotification”方法,推送的資料在userInfo裡,針對處理即可。

(2)app退出到後台狀態時收到推送

螢幕上會出現通知提醒,如果點開訊息進入app,app運行到前台時會調用“didReceiveRemoteNotification”方法,這也就是之前為什麼要區分一下applicationState的原因,因為二者都是通過這一步來處理。

(3)app處於關閉退出狀態時收到推送

同樣螢幕上出現通知提醒,點開訊息進入app,啟動時“didFinishLaunchingWithOptions”方法裡的launchOptions對應UIApplicationLaunchOptionsRemoteNotificationKey部分內容不再為空白,含有的即是推送內容,針對處理即可。

3.其它

(1)網路狀況不佳時遠程訊息推送情況

如果手機不在網的時候,APNs會有一個QoS的東西把訊息儲存很短的時間,等手機在網時再推送過來,當然離線時間久了,訊息也就收不到了,但在實際中發現貌似網路不佳的時候一般就收不到了。

如果手機離線時,伺服器推送了多條訊息,即時上線了收到訊息,也只會收到最新的一條

(2)推送的內容格式

推送的內容都有固定格式和長度,包括title(iOS8.2後增加的)、body、sound等,如果本地沒有設定對應的音效檔,sound的值為default,收到推送的時候響起的是預設的提示音,並且推送訊息的長度限制為256個位元組(iOS8中這一限制放大到2kb),具體參考Local and Remote Notification Programming Guide中The Notification Payload這一節。

本文已被整理到了《iOS推送教程》,歡迎大家學習閱讀。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.