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

时间:2016-02-02 10:01:40

标签: ios iphone swift

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

2 个答案:

答案 0 :(得分:3)

维护一个递增的userDefault “ - (BOOL)应用程序:(UIApplication *)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}”method

如果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()
        }
    }

答案 1 :(得分:0)

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

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

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