使用以下代码,应用程序编译后,我立即在徽章图标中得到(2):
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { let installation = PFInstallation.currentInstallation() installation.setDeviceTokenFromData(deviceToken) installation.badge = 2 installation.saveInBackground() }
我确实尝试了下一个变体:初始化一个新的版本,var badgeCount = 0然后再更新:
var badgeCount = 0
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { badgeCount++ let installation = PFInstallation.currentInstallation() installation.setDeviceTokenFromData(deviceToken) installation.badge = badgeCount installation.saveInBackground() }
但是,当我收到新通知时,它不会更新为+1。有谁知道如何解决?
除非实际打开应用程序,否则不会使用此方法更新徽章编号。如果要在收到通知时更新徽章编号,则需要将json推送通知的Badge属性设置为所需编号。
如果您发送的是普通消息(不使用json),则可以通过切换来增加徽章编号,只需勾选该编号即可。如果您使用的是Json,请使用以下命令:
{ "aps": { "alert": "Test Push Notification", "sound": "yourSound.aiff", "Badge": "desiredNumber" } }
请注意,如果您不希望从服务器发送此消息,也可以使用Parse的客户端请求将其从一台设备发送到另一台设备,进入Parse.com上的应用程序中的设置并启用“客户端请求”,然后将上述Json发送到另一个用户的设备。