我知道这是破解和削减,但您可以通过更改应用程序上的徽章编号来清除所有通知.
- (void)application:(UIApplication*)application didReceiveRemoteNotification (NSDictionary*)payload
{
NSLog(@"Received notification: %@", payload);
//swapping between two badge numbers to clear notifications
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
...
}
Run Code Online (Sandbox Code Playgroud)
如果你已经有一个你不想丢失的徽章编号(上面的例子只是简单地清楚徽章编号)你可以做类似的事情
- (void)application:(UIApplication*)application didReceiveRemoteNotification (NSDictionary*)payload
{
NSLog(@"Received notification: %@", payload);
/*
storing current badge number then swapping between 2 values to make sure we
clear the badge number. Once this is done set badge number back to original
value.
*/
int badgeNum = [[UIApplication sharedApplication] applicationIconBadgeNumber]
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeNum];
...
}
Run Code Online (Sandbox Code Playgroud)
这可能不是最佳做法,但它完成了工作,客户不会知道差异.我喜欢称之为临时.直到我偶然发现一个更好的解决方案.希望这有助于某人!
| 归档时间: |
|
| 查看次数: |
4139 次 |
| 最近记录: |