[英]Increment the Push notification Badge iPhone
是否可以在收到通知時增加徽章值。 或者我應該將計數作為有效載荷發送嗎?
如果我每次都將徽章值發送為“1”,如果應用程序未打開,我如何增加應用程序圖標中的徽章值。
我已經使用了此代碼但不起作用。
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + 1;
}
通常在所有應用程序中,未讀通知計數都保存在服務器中。 當服務器向特定設備令牌發送推送通知時,它們會隨負載一起發送徽章計數。 一旦設備收到通知並且您的應用程序處於后台(或被終止),操作系統會自動將徽章計數更新為您的應用程序圖標。 如果您的應用程序是否正在運行,您將在
application:didReceiveRemoteNotification:
委托,因此您可以從 (NSDictionary *)userInfo 接收徽章計數。 因此,您可以使用該功能更新應用程序圖標徽章計數
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
認為這應該對您有所幫助。
如果應用程序未打開,除了有效載荷之外,您將無法增加徽章。
當一個推送通知來當你的應用程序在后台模式和要遞增證件號碼,你應該送badgeCount
到服務器,讓服務器知道當前計數。
如果您從服務器端管理徽章計數,那么此代碼就足夠了:-
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
NSLog(@"remote notification: %@",[userInfo description]);
if (userInfo) {
NSLog(@"%@",userInfo);
if ([userInfo objectForKey:@"aps"]) {
if([[userInfo objectForKey:@"aps"] objectForKey:@"badgecount"]) {
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
}
}
}
}
Urban Airship 使用他們的“自動徽章”功能支持這一點。
打開App時收到遠程通知后,
使用以下代碼在 Appdelegate 文件的“didBecomeActive”方法中獲取當前徽章編號:
int badgeCount = [UIApplication sharedApplication].applicationIconBadgeNumber;
badgeCount = badgeCount + 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.