正如苹果关于推送通知的官方信息页面所述:
“设备令牌可能会更改,因此您的应用程序需要重新注册每次启动时."
我试图理解他们所说的“每次启动”是什么意思。
这是否意味着我必须在 AppDelegate 中的 didFinishLaunchingWithOptions() 中调用它,如下所示:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.registerForRemoteNotifications()
return true
}
将此代码放在这里将导致它在每次用户打开应用程序时执行,如果用户在应用程序之间执行多任务(在它们之间来回),则可能每分钟执行多次。
并且由于调用注册方法会调用对APNS的HTTP请求,因此存在被临时禁止的风险。
这些观察结果是否正确,或者我可以像这样毫无恐惧地使用注册方法?
(我正在使用 xcode 6.2 和 Swift)
didFinishLaunchingWithOptions
不会在每次用户切换到您的应用程序时调用,因为您的应用程序通常仍在运行。你所描述的听起来更像是applicationDidBecomeActive
.
添加一些NSLog
使用这两种方法来说服自己didFinishLaunchingWithOptions
是正确的打电话地点.registerForRemoteNotifications
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)