在 swift 中获取设备令牌

Getting device token in swift

两天前,我突然停止接收到 iPhone 的推送通知(我每 5-10 分钟从我的网站发送一次自动推送通知)。

我打开了我的 Xcode 项目并尝试接收我的设备令牌以检查是否一切正常,但它没有打印。 它要求我在我的设备上启用推送通知,当我按下 "Ok" 时没有任何反应。

app delegate中的代码如下:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    registerForPushNotifications(application)
    return true
}

func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
    if notificationSettings.types != .None {
        application.registerForRemoteNotifications()
    }
}

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
    let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)
    var tokenString = ""

    for i in 0..<deviceToken.length {
        tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])
    }

    print("Device Token:", tokenString)
}

func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
    print("Failed to register:", error)
}

我似乎通过登录我的 "apple developer" 帐户并同意更新后的服务条款来解决这个问题。

执行此操作大约 1 小时后,我又开始收到推送通知。

感谢大家的帮助!