如何延迟推送通知权限弹出Swift

我正在使用推送通知的应用程序,我想延迟推送通知权限的出现,直到用户第三次进入我的应用程序。 所以他应该对我的应用感兴趣,然后我想问他的许可。 我有办法做到这一点吗? 我搜索了很多方法,比如这里: 重置app的推送通知设置,但我没有得到任何有用的答案。 请帮忙。 谢谢

维护一个userDefault,在“ – (BOOL)应用程序:(UIApplication *)应用程序didFinishLaunchingWithOptions 🙁 NSDictionary *)launchOptions {}”方法中递增

如果userDefault大于3,则寻求Notification的许可

if NSUserDefaults.standardUserDefaults().objectForKey("launchCount")?.integerValue >= 3{ if UIApplication.sharedApplication().respondsToSelector("isRegisteredForRemoteNotifications") { UIApplication.sharedApplication().registerUserNotificationSettings( UIUserNotificationSettings( forTypes: [.Alert, .Badge, .Sound], categories: nil)) UIApplication.sharedApplication().registerForRemoteNotifications() } } 

使用UIApplication的registerForRemoteNotifications方法。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/occ/instm/UIApplication/registerForRemoteNotifications

您使用的是第三方推送通知SDK吗? 如果是这样,那么该SDK中的方法通常会进行注册并将令牌存储在其数据库中。

您必须控制的只是延迟用于注册远程通知的调用