我试图将用户令牌保存在安装类中,但没有任何内容被添加到该类中。
这是我的应用程序委托中的代码块,用于注册令牌并为该用户创建一行。
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
// Store the deviceToken in the current Installation and save it to Parse
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
if let username = PFUser.currentUser()?.username {
installation.setObject(username, forKey: "user")
}
installation.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
if (error == nil){
print("saved installation")
}else{
print(error)
}
})
}
我将下面的块放置在我的个人资料视图中,这是登录后显示的视图控制器。我将其从应用程序委托中移出,因为我希望用户登录后被提示允许用户进行通知。问题是
didRegisterForRemoteNotifications...
没有被调用。 let settings = UIUserNotificationSettings(forTypes: [.Alert, .Sound, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
UIApplication.sharedApplication().registerForRemoteNotifications()
最佳答案
首先想到的是:您是否正在模拟器中运行它?如果是,您将无法获得设备令牌,因为Simulator无法处理远程通知。
其次,这一行:
installation["user"] = PFUser.currentUser()?.username
实际上应该是:
if let user = PFUser.currentUser()? {
installation.setObject(user, forKey: "user")
}
Parse的iOS库尚未移植到Swift,因此目前无法处理订阅。