1、通過極光推送測(cè)試推送到來后點(diǎn)擊alert或圖標(biāo)的效果:
a移怯、關(guān)閉
(1) 推送 -> 點(diǎn)擊alert -> 進(jìn)入app:接收通知,進(jìn)入委托
(1) 推送 -> 點(diǎn)擊圖標(biāo) -> 進(jìn)入app:接收通知这难,沒有進(jìn)入委托
b舟误、后臺(tái)
(1) 推送 -> 點(diǎn)擊alert -> 進(jìn)入app:接收通知,進(jìn)入委托
(1) 推送 -> 點(diǎn)擊圖標(biāo) -> 進(jìn)入app:接收通知姻乓,沒有進(jìn)入委托
c嵌溢、前臺(tái)
(1) 推送 -> 點(diǎn)擊alert:接收通知,進(jìn)入委托
(2) 推送? -> 不點(diǎn)擊alert:接收通知蹋岩,進(jìn)入委托
2赖草、BabySister業(yè)務(wù)場(chǎng)景和解決方案:
a、業(yè)務(wù)場(chǎng)景:
(1) app未啟動(dòng)或在后臺(tái):推送到來剪个,更新圖標(biāo)的角標(biāo)秧骑,用戶點(diǎn)擊alert進(jìn)入app,直接進(jìn)入指定頁面。用戶退出app后腿堤,刪除圖標(biāo)上角標(biāo)阀坏。
(2) app未啟動(dòng)或在后臺(tái):推送到來,更新圖標(biāo)的角標(biāo)笆檀,用戶點(diǎn)擊圖標(biāo)進(jìn)入app忌堂,直接進(jìn)入指定頁面。用戶退出app后酗洒,刪除圖標(biāo)上角標(biāo)士修。
(3) app啟動(dòng)并且在前臺(tái):推送到來,更新指定頁面的角標(biāo)樱衷,用戶點(diǎn)擊alert棋嘲,跳轉(zhuǎn)到指定頁面。
(4) app啟動(dòng)并且在前臺(tái):推送到來矩桂,更新指定頁面的角標(biāo)沸移,用戶沒有點(diǎn)擊alert,不跳轉(zhuǎn)侄榴。
b雹锣、解決方案
默認(rèn)的推送可以實(shí)現(xiàn)業(yè)務(wù)場(chǎng)景(1)、(3)和(4)癞蚕,業(yè)務(wù)場(chǎng)景(2)通過增加自定義消息實(shí)現(xiàn)蕊爵。前端無法確定用戶是使用哪種方式觸發(fā)通知,所以后臺(tái)必須同時(shí)實(shí)現(xiàn)推送和自定義消息桦山,以保證任何場(chǎng)景下都可以收到通知并顯示角標(biāo)攒射。
實(shí)現(xiàn):
(1) 推送和自定義消息到來,AppDelegate中發(fā)起本地通知恒水。
(2) UITabBarController負(fù)責(zé)頁面切換会放,添加觀察者監(jiān)測(cè)AppDelegate的通知,根據(jù)通知的不同情況钉凌,切換頁面和更新角標(biāo)鸦概。
(3) 點(diǎn)擊指定頁面(UITabBarItem)的通知,刪除角標(biāo)甩骏。