RequestAuthorization用于在didFinishLaunchingWithOptions之外进行推送

对于我用于注册推送通知的ios 10:

在Xcode 8 / Swift 3.0中注册推送通知?

有没有办法在appdelegate和func应用程序(_ application:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)之外寻求requestAuthorization(选项:[。badge,.alert,.sound]?) - > Bool

我问的原因是因为我不想在用户使用该应用程序一段时间后显示推送通知的弹出窗口。 有任何想法吗?


就像@dan表示,不需要在AppDelegate请求通知权限。 你可以在任何地方做到这一点。 这就是你可能为此所做的。

let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .badge, .sound]) { (success, error) in
    if error == nil {
        if success == true {
            print("Permission granted")
            // In case you want to register for the remote notifications
            let application = UIApplication.shared
            application.registerForRemoteNotification
        }
        else {
            print("Permission denied")
        }
    else {
        print(error)
    }
}

并记住

  • 在您使用此代码的位置导入UserNotifications框架。
  • 如果您注册远程通知,则需要在AppDelegate实现didRegisterForRemoteNotificationsWithDeviceToken方法
  • 链接地址: http://www.djcxy.com/p/34875.html

    上一篇: RequestAuthorization for push outside the didFinishLaunchingWithOptions

    下一篇: iOS8: Are apps on the multitasking screen in background?