苹果推送通知徽章数字

9

我已经开发了一款服务器端应用程序,可以在接收到新通知后将徽章号码增加或减少,并在查看通知后删除,它运行良好。

但是在显示徽章时存在一些问题,实际情况是-在设备上收到新通知后,我点击取消按钮,然后徽章数字就正确显示了。但之后我打开并关闭应用程序后,徽章就会被移除。这意味着我没有向服务器发送请求,告诉它我已经看过通知,现在你可以将徽章减少一个。即使如此,徽章也从应用程序图标中删除了。

我的问题是,当我们打开应用程序时,徽章号码是否会自动从(应用程序)设备中删除?还是直到我们将其设置为零才会显示?

2个回答

13

它会一直显示,直到你将其设置为零,你可以使用以下代码来完成:

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]


编辑:
通常在接收到通知时,会在您的 UIApplicationDelegate 类的 application:didReceiveRemoteNotification:application:didFinishLaunchingWithOptions: 方法中设置徽章数字。

您可以在本地和远程通知编程指南 中了解更多信息。


0

如果您想要自动更改应用程序图标徽章,请使用以下代码。

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

    application.applicationIconBadgeNumber = 0;
    NSLog(@"userInfo %@",userInfo);

    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }

    [application setApplicationIconBadgeNumber:[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]];

    NSLog(@"Badge %d",[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]);

}

我们还需要更改php文件,这样我们就可以自动更改图标徽章。

// Create the payload body
$body['aps'] = array(
    'alert' => $message,
    'sound' => 'default',
    'id' => '135',
    'badge' => 8
    );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接