iOS的推送通知 - 无警报更新徽章?(iOS Push Notifications - updat

2019-07-21 00:23发布

有没有一种方法来更新徽章的数量,而不显示警告或打开应用程序?

我正在写一个应用程序,应该始终显示在图标徽章未读邮件的当前数目,但我想不显示任何提示给用户这样做。

我开发iOS 5.0及。

编辑:为了更清晰,我问一个办法做到这一点,当应用程序没有运行 。 我希望服务器推送新的徽章数量,而不显示一个警告..这可能吗?

Answer 1:

你能行的。 它可以发送推送通知没有发出警报。 你甚至可以注册您的应用程序只是徽章的通知,在这种情况下,提供商服务器甚至不能够发送警报或声音。

通知有效载荷

每个推送通知与它携带的有效载荷。 有效载荷指定用户如何被惊动的数据等待被下载到客户端应用程序。 允许的有效载荷通知的最大大小为256个字节; 苹果推送通知服务拒绝任何超过这一限制的任何通知。 请记住,通知的交付是“尽力而为”,并且不保证。

对于每个通知,供应商必须撰写严格符合RFC 4627.这本词典必须包含的关键APS确定另一个字典中的JSON字典对象。 在APS字典包含指定以下动作的一个或多个属性:

警报消息显示给用户

一个数字,徽章应用程序图标

要播放的声音

请注意,它说one or more of the properties 。 警报属​​性是可选的。 你甚至可以发送通知与空aps字典(即只发送自定义属性)。

实施例5下面的示例示出了一个空的APS字典; 因为徽章属性缺失,应用程序图标中所示的任何电流徽章号被去除。 该acme2自定义属性是两个整数数组。

{

    "aps" : {

    },

    "acme2" : [ 5,  8 ]

}

唯一提醒用户会看到它,询问他警告/她是否允许推送通知。 该警报将只显示第一次应用程序在安装后启动。

在这个例子中,你注册到非警报通知(徽章,只有声音):

Listing 2-3  Registering for remote notifications

- (void)applicationDidFinishLaunching:(UIApplication *)app {

   // other setup tasks here....

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

}



// Delegation methods

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {

    const void *devTokenBytes = [devToken bytes];

    self.registered = YES;

    [self sendProviderDeviceToken:devTokenBytes]; // custom method

}



- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {

    NSLog(@"Error in registration. Error: %@", err);

}

所有报价均来自苹果当地采取和推送通知编程指南。



Answer 2:

您可以使用

[UIApplication sharedApplication].applicationIconBadgeNumber = aNumber;


Answer 3:

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

{

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}

使用此方法....这将帮助ü。



Answer 4:

你应该使用applicationIconBadgeNumber局部处理您的应用程序证件号码

[UIApplication sharedApplication].applicationIconBadgeNumber = number_of_notifications;

我不认为这是可能的,至今没有警觉做,因为从远程通知后,将徽章计数器。 你应该阅读有关APN服务 ,你的情况可能会为注册UIRemoteNotificationTypeBadge你应该阅读有关本地及推送通知编程指南



文章来源: iOS Push Notifications - update badge without alert?