通过下面的代码,我在应用程序编译后立即在徽章图标中获得(2):
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = 2
installation.saveInBackground()
}
字符串
我尝试了下一个变体:初始化一个新的var badgeCount = 0
和更高版本:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
badgeCount++
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = badgeCount
installation.saveInBackground()
}
型
但是当我收到新的通知时,它不会更新到+1。有人知道如何修复它吗?
6条答案
按热度按时间wnavrhmk1#
每当代码被编译时,它都会显示先前存储在应用中的徽章图标。如果您没有在应用中设置徽章图标= 0,则每次编译或进入后台状态时,它都会显示应用中的徽章图标编号。
现在你的问题,使用徽章图标作为
字符串
此外,每当你完成你的任务,使徽章图标为0,否则它会显示一个徽章图标在您的应用程序
型
uqjltbpv2#
除非应用实际打开,否则它不会使用此方法更新徽章编号。如果您希望在收到通知时更新徽章编号,则需要将json push通知的Badge属性设置为所需的编号。
如果你,如果你正在发送一个普通的消息(不使用json),有一个切换来增加徽章号码,只需勾选它。如果你使用Json,然后使用这个:
字符串
请注意,如果您不希望从服务器发送,您也可以使用Parse的客户端推送将其从一个设备发送到另一个设备,进入Parse.com上的应用程序中的设置并启用“客户端推送”,然后您可以将上述JSON发送到另一个用户的设备。
eimct9ow3#
在Swift 5中,你可以随时更新应用程序的徽章,使用以下代码:
字符串
umuewwlo4#
我曾在类似的情况下工作,我发现的最终解决方案是增加和重置徽章号码。
递增徽章编号
1.我总是保存徽章数量计数在内存中(
NSUserDefaults
)1.每次我必须设置通知时,我都会获取当前徽章编号增量,并在
.applicationIconBadgeNumber
上设置该编号,并更新内存中的计数。重置徽章编号
1.在我的情况下,我必须重置所有的徽章计数一旦应用程序被打开.所以我已经设置
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
在AppDelegate
的didFinishLaunchingWithOptions
.我还重置了内存中的计数.xbp102n05#
这些答案都不再有效了。
您需要查看Push代码,而不是AppDelegate
从Parse文档:
字符串
xmd2e60i6#
字符串
//已弃用
UIApplication.shared.applicationIconBadgeNumber = x