運行程序,如果出現(xiàn)以下圖片內(nèi)容,就證明成功了

因為我們只測IOS客戶端,所以只用去極光官網(wǎng)去推送測試就行了

然后我們就會發(fā)現(xiàn)角標問題!??!

不管我們發(fā)送幾次通知,這個APP角標永遠為1,而且點擊啟動程序,在退出,這個角標還是1,感覺永遠去不掉!?。?/p>
1.角標始終為1:
去極光官網(wǎng),在推送消息的時候,設置badge屬性,改為+1,這樣每次收到通知,角標會加1了。

2.角標始終去不掉
在程序AppDelegate這個方法里面添加以下代碼

代碼如下:
[UIApplicationsharedApplication].applicationIconBadgeNumber=0;
[JPUSHServicesetBadge:0];
即每次打開APP初始化角標
為什么寫在這里呢?
因為APP在關閉狀態(tài)會收到通知,但是最小化在后臺也會收到通知,如果寫在

這個方法里面,只有重新打開APP才會初始化角標。
但是
最小化收到通知在打開APP是不會初始化角標的
一、在使用極光設置app角標時,你需要了解下極光推送相關知識點
設置app角標可通過極光設置,也可以通過iOS方法設置,方法介紹如下:
1.通過極光設置app角標的方法有
方法1:[JPUSHService setBadge:5];
方法介紹:設置JPush服務器中存儲的badge值,設置為多少,app接受到通知之后,角標就為多少。
方法2:[JPUSHService resetBadge];
方法介紹:清空JPush服務器中存儲的badge值,即 [setBadge:0]。設置完之后,即使app接受到通知了,app角標也不會顯示。
2.通過極光設置app角標的方法有
方法:[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
方法介紹:設置的值不為0時,值是多少,app角標就顯示多少。如果設置的值為0時。APP角標不顯示,并且會清空通知列表中本APP的所有通知。
特別注意點:該方法值為0時,會清空通知列表中本APP的所有通知。
二、注意點
1.可否可精確改變app右上角的角標?
答:不可以,因為通知列表有個清除按鈕,我們無法判斷,我們無法判斷我們的通知是否被刪除了。
2.iOS 10及以下,APP在前臺接收到通知時,頂部會彈出通知,但是iOS 10以下的系統(tǒng)是不會彈出通知的哦。這一點需要注意了。
3.無論iOS系統(tǒng)是幾,APP在后臺接受到消息,手機頂部都會有彈窗,并且有聲音(前提是你別把手機聲音關了哦)。
4.無論iOS系統(tǒng)是幾,APP在前臺接收到推送時,都不會有聲音。
三、總結(jié):
如果通過以上三種方法的哪一種方式設置APP的角標,只要設置的值為0,那么蘋果系統(tǒng)就會自動清空通知列表中本APP的所有通知,即使你沒有點擊過這條通知,也會被清空。這就會造成用戶可能錯過讀取某些重要的通知。因此,筆者建議,跟后臺人員說,推送時badge永遠設置為0,不要累加。這樣的好處就是,用戶在通知列表點擊一條通知,就自動消失一條通知,而不會清空所有。從而避免用戶錯誤某些重要通知。
當然,一些非常重要的通知,筆者還是建議后臺推送完之后,APP也有個可以查看通知的地方。這樣即使用戶清空了通知,在APP內(nèi)部依舊可以查看得到。