當QQ關閉時,如果有新的消息進來,app上的badge顯示數目會遞增。比如原來是2,新來了兩條,就變成了4.我了解到的APNS推送邏輯里,是在payload中定義應用的badge顯示條數,如下將顯示2:$body = array("aps" => array("alert" => '哈哈,能推送過來咯!',"badge" =>2,"sound"=>'default'));似乎沒有遞增的方式。如果要利用程序本地的代碼的話,則必須是用戶打開應用的狀態下,那個時候會有- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo被調用,但必須是應用打開狀態。
2 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
之前我做的推送,也是這樣,在服務器端有一個消息隊列,每次把隊列長度作為badge的數字發送到手機端
我非常不建議做成數字遞增,因為這樣你就沒有機會重置數字,一旦服務端和手機端出現不同步的現象,這個數字就永遠是錯的

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
一句話:Badge的數值是由服務器控制的。所以只有一個問題,就是怎么保證客戶端顯示的數值就是當前未讀條目的計數。這就需要客戶端和服務器交流溝通了,也就是同步。
客戶端運行時,每看一條未讀信息,都給服務器發剩余的未讀數,服務器自行更新計數,好方便下次推送時決定Badge的數值。
客戶端關閉時,服務器收到給此用戶的新消息,未讀計數自然+1,再發通知過去。
- 2 回答
- 0 關注
- 172 瀏覽
添加回答
舉報
0/150
提交
取消