在 iPhone 5 和 iPhone SE 中获取空设备令牌
Getting empty device token in iPhone 5 and iPhone SE
我没有在 iPhone 5 (10.2.1) 和 SE(10.3.1) 和其他 5 个相关设备中获得设备令牌,但在所有 iPhone 6(包括加, SE) and 7, and 7+ also.
这是我的注册码
func registerForPushNotification(let application: UIApplication) {
let notificationTypes: UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound]
let pushNotificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: nil)
application.registerUserNotificationSettings(pushNotificationSettings)
application.applicationIconBadgeNumber = 0
if pushNotificationSettings.types != .None {
application.registerForRemoteNotifications()
}
}
这是我收集代币的代码
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let characterSet: NSCharacterSet = NSCharacterSet( charactersInString: "<>" )
let deviceTokenString: String = ( deviceToken.description as NSString )
.stringByTrimmingCharactersInSet( characterSet )
.stringByReplacingOccurrencesOfString( " ", withString: "" ) as String
print( deviceTokenString )
}
有什么帮助吗?
我在 AppDelegate
中处理了 didRegisterUserNotificationSettings
像这样
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
if notificationSettings.types != [] {
application.registerForRemoteNotifications()
}
}
这解决了@Lion
提出的问题
我没有在 iPhone 5 (10.2.1) 和 SE(10.3.1) 和其他 5 个相关设备中获得设备令牌,但在所有 iPhone 6(包括加, SE) and 7, and 7+ also.
这是我的注册码
func registerForPushNotification(let application: UIApplication) {
let notificationTypes: UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound]
let pushNotificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: nil)
application.registerUserNotificationSettings(pushNotificationSettings)
application.applicationIconBadgeNumber = 0
if pushNotificationSettings.types != .None {
application.registerForRemoteNotifications()
}
}
这是我收集代币的代码
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let characterSet: NSCharacterSet = NSCharacterSet( charactersInString: "<>" )
let deviceTokenString: String = ( deviceToken.description as NSString )
.stringByTrimmingCharactersInSet( characterSet )
.stringByReplacingOccurrencesOfString( " ", withString: "" ) as String
print( deviceTokenString )
}
有什么帮助吗?
我在 AppDelegate
didRegisterUserNotificationSettings
像这样
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
if notificationSettings.types != [] {
application.registerForRemoteNotifications()
}
}
这解决了@Lion
提出的问题