1、通過極光推送測試推送到來后點擊alert或圖標的效果:
a、關閉
(1) 推送 -> 點擊alert -> 進入app:接收通知,進入委托
(1) 推送 -> 點擊圖標 -> 進入app:接收通知,沒有進入委托
b、后臺
(1) 推送 -> 點擊alert -> 進入app:接收通知,進入委托
(1) 推送 -> 點擊圖標 -> 進入app:接收通知,沒有進入委托
c、前臺
(1) 推送 -> 點擊alert:接收通知,進入委托
(2) 推送? -> 不點擊alert:接收通知,進入委托
2、BabySister業務場景和解決方案:
a、業務場景:
(1) app未啟動或在后臺:推送到來,更新圖標的角標,用戶點擊alert進入app,直接進入指定頁面。用戶退出app后,刪除圖標上角標。
(2) app未啟動或在后臺:推送到來,更新圖標的角標,用戶點擊圖標進入app,直接進入指定頁面。用戶退出app后,刪除圖標上角標。
(3) app啟動并且在前臺:推送到來,更新指定頁面的角標,用戶點擊alert,跳轉到指定頁面。
(4) app啟動并且在前臺:推送到來,更新指定頁面的角標,用戶沒有點擊alert,不跳轉。
b、解決方案
默認的推送可以實現業務場景(1)、(3)和(4),業務場景(2)通過增加自定義消息實現。前端無法確定用戶是使用哪種方式觸發通知,所以后臺必須同時實現推送和自定義消息,以保證任何場景下都可以收到通知并顯示角標。
實現:
(1) 推送和自定義消息到來,AppDelegate中發起本地通知。
(2) UITabBarController負責頁面切換,添加觀察者監測AppDelegate的通知,根據通知的不同情況,切換頁面和更新角標。
(3) 點擊指定頁面(UITabBarItem)的通知,刪除角標。