極光推送是爲 App 提供第三方推送服務的平臺之一,它提供四種消息形式:通知,自定義消息,富媒體和本地通知。
筆者將基於官方說明與我的理解來談一下這四種消息。本篇爲 iOS 篇,Android 篇入口。ios
Push Notification,即指在手機的通知欄(狀態欄)上會顯示的一條通知信息。 iOS :JPush 代理 Apple 官方的 APNs 通知。
特別說明api
APNs 通知的流程是這樣的服務器
注:咱們測試時若收不到消息,極光社區有總結一個完整的排查步驟,基本能夠解決問題;若是本身排查不出,能夠直接找官方幫忙查詢,這裏設備的 registrationID 和消息的 msgid 就是必須提供的信息。網絡
APNs 通知的幾個特色ide
willPresentNotification
方法,前臺收到 APNs 通知後就會走這個方法。didReceiveNotificationResponse
方法(即後臺收到通知後,點擊通知的回調方法)。[[UIApplication sharedApplication] unregisterForRemoteNotifications];
進行關閉。"alert" : "hello, JPush!",
或者"alert" : { "title" : "JPush Title", "subtitle" : "JPush Subtitle" , "body" : "JPush Body" },
completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert);
由 JPush iOS SDK 提供的應用內消息功能,此消息不通過 APNs 服務器,徹底由 JPush 提供功能支持。
幾個特色測試
* 同時發內容同樣的自定義消息和 APNs 通知消息(APNs 用來展現,自定義消息用來取數據) * 自定義消息中攜帶定義好的 extras ,客戶端收到後根據事先設定的規則去設置一個本地通知,用本地通知來展現這條消息
msg_content
爲空時,SDK 不會對消息進行廣播,App 沒法接收到推送的消息。networkDidReceiveMessage
,詳細看官方文檔說明。何時使用它?ui
能夠推送 Web頁面、圖片、聲音等除普通文本以外更豐富的內容。
僅支持 Android ,須要JPush Android SDK 1.8.0 及以上。lua
適用於在特定時間發出的通知,如一些Todo和鬧鐘類的應用,在每週、每個月固定時間提醒用戶回到應用查看任務。
content.body = @"This is a test code";
推送自定義消息,觸發本地通知去展現。spa
題外話代理
本文轉自 末日雲遊-極光