Ork*_*ade 16 push-notification badge ios parse-platform swift
使用以下代码,我会在应用程序编译后立即在徽章图标中获取(2):
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = 2
installation.saveInBackground()
}
Run Code Online (Sandbox Code Playgroud)
我确实尝试了下一个变体:初始化一个新的var badgeCount = 0和后来的:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
badgeCount++
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = badgeCount
installation.saveInBackground()
}
Run Code Online (Sandbox Code Playgroud)
但是当我收到新通知时,它不会更新为+1.有谁知道如何解决它?
Swi*_*y89 16
除非应用程序实际处于打开状态,否则不会使用此方法更新徽章编号.如果要在收到通知时更新徽章编号,则需要将json推送通知的Badge属性设置为所需的编号.
如果您,如果您正在发送正常消息(不使用json),则会有一个切换来增加徽章编号,只需勾选即可.如果你正在使用Json,那么使用:
{
"aps": {
"alert": "Test Push Notification",
"sound": "yourSound.aiff",
"Badge": "desiredNumber"
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果您不希望从服务器发送此信息,您也可以使用Parse的客户端推送将其从一台设备发送到另一台设备,在Parse.com上的应用程序中进入您的设置并启用"客户端推送",您可以然后将上面的Json发送给另一个用户的设备.
Riz*_*ikh 16
每当编译代码时,它都会显示以前存储在您应用中的徽章图标.如果您未在应用中设置徽章图标= 0,则每次编译时都会在应用中显示徽章图标编号或进入后台状态.
现在针对您的问题,使用徽章图标作为
var badgeCount = 0
UIApplication.sharedApplication().applicationIconBadgeNumber = ++badgeCount
Run Code Online (Sandbox Code Playgroud)
此外,无论何时完成任务,都会将徽章图标设为0,否则会在您的应用中显示徽章图标
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
Run Code Online (Sandbox Code Playgroud)
我已经开始研究类似的场景和我发现的最终解决方案,以增加和重置徽章编号.
增加徽章编号
NSUserDefaults).applicationIconBadgeNumber并更新内存中的计数.重置徽章编号
UIApplication.sharedApplication().applicationIconBadgeNumber = 0在didFinishLaunchingWithOptions的AppDelegate.我也重置了内存中的计数.在 Swift 5 中,您可以使用以下代码随时更新应用程序的徽章:
UIApplication.shared.applicationIconBadgeNumber = 0 // YOUR NUMBER DESIRED
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31300 次 |
| 最近记录: |