【问题标题】:How to delay push notifications permission popup Swift如何延迟推送通知权限弹出Swift
【发布时间】:2016-05-11 01:37:48
【问题描述】:

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

【问题讨论】:

    标签: ios iphone swift


    【解决方案1】:

    维护一个用户默认值,它在 "- (BOOL)application:(UIApplication *)application 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()
            }
        }
    

    【讨论】:

    • 谢谢,但是如何“寻求通知许可”?什么是合适的命令应该调用它?
    • 满足条件时可以调用该方法 if UIApplication.sharedApplication().respondsToSelector("isRegisteredForRemoteNotifications") { UIApplication.sharedApplication().registerUserNotificationSettings( UIUserNotificationSettings( forTypes: [.Alert, .Badge, .Sound],类别:nil)) UIApplication.sharedApplication().registerForRemoteNotifications() }
    • 这也无济于事,您不能延迟弹出通知。
    • 保持这段代码在条件中,当你的条件满足时,就像它启动了3次然后调用这个方法
    • 好答案。必须在此处查找有关如何将 launchCount 保存到 NSUserDefaults 的说明:stackoverflow.com/a/31966920/2628223
    【解决方案2】:

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

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

    您唯一需要控制的是延迟用于注册远程通知的呼叫

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 2018-09-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多