閱讀119 返回首頁    go 阿裏雲


iOS靜默通知__iOS SDK手冊_App SDK 手冊_移動推送-阿裏雲

iOS靜默通知

iOS Silent Notification(靜默通知),屬於特殊的遠程推送通知,其目的不是為了彈出通知框提醒用戶,而是用於後台運行的App和服務端同步數據。例:App在後台放置一段時間,網絡已不再活躍,App內數據可能已經過時;服務端可推送一條攜帶參數的靜默通知,處於後台的App可以觸發靜默通知回調,在後台運行狀態下獲取對應參數並發起網絡請求,獲取最新數據更新,整個過程用戶無感知。

靜默通知限製和注意事項:

  • 靜默通知主要用於更新和同步數據,用戶對其無感知,因此靜默通知一般不設置通知內容、聲音和角標;
  • 靜默通知喚醒後台App並執行下載任務時,最多有30秒時間執行;
  • App處於前台/後台時均可觸發對應通知回調,App關閉後不能觸發;
  • 靜默通知請求在APNs屬於低優先級任務,蘋果不保證靜默通知的到達率;
  • 不要利用靜默通知對App進行保活,APNs若檢測到較高頻率的靜默通知發送請求,可能會終止其發送(具體策略蘋果未公開)。

服務端配置

靜默通知一般不設置推送內容、聲音和角標,發送到APNs的payload格式如下,其中需要設定content-available1,標記為靜默通知。

  1. {
  2. "aps": {
  3. "content-available" : 1
  4. },
  5. "key1" : "value1",
  6. "key2" : "value2"
  7. }

移動推送服務端發送靜默通知,需要基於OpenAPI 2.0的推送高級接口

  • 接口描述參考OpenAPI 2.0 - API列表 - 推送高級接口
  • iOSSilentNotification設置為True時,表示使能靜默通知;
    • 若通知內容字段Body為空串"",推送時忽略通知內容聲音角標設置,推送一條用戶無感知的靜默通知;(建議使用方式
    • 若通知內容字段Body為非空串,通知內容聲音角標都需要用戶自行配置,用戶可感知到該條靜默通知。(不建議使用

客戶端適配

靜默通知回調處理:

  • 處理邏輯和普通通知回調一致;
  • < iOS 10,觸發didReceiveRemoteNotification回調,參考iOS API介紹2.3 通知打開監聽 - <iOS 10
  • >= iOS 10,App位於前台觸發willPresentNotification回調,App位於後台觸發didReceiveNotificationResponse回調,參考iOS API介紹2.3 通知打開監聽 - iOS 10+

App若需要在後台處理靜默通知,Xcode工程做以下修改:

  • Xcode中選中App對應Project,並選中對應iOS App Target;
  • 打開Capabilities Tab,使能Background Modes,並勾選Remote notifications

xcode-silent-notification-config

最後更新:2016-12-20 21:19:29

  上一篇:go iOS API介紹__iOS SDK手冊_App SDK 手冊_移動推送-阿裏雲
  下一篇:go iOS10通知適配__iOS SDK手冊_App SDK 手冊_移動推送-阿裏雲