2016-11-03 42 views
2

對於iOS 10我用這個用於註冊推送通知的didFinishLaunchingWithOptions外:RequestAuthorization推送

Registering for Push Notifications in Xcode 8/Swift 3.0?

有沒有辦法來索要requestAuthorization(選項:徽章,.alert,。聲音])外的appdelegate和func應用程序(_應用程序:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?) - > Bool

我要問的原因是因爲我不想呈現彈出在用戶使用該應用程序之後推送通知。有任何想法嗎?

+0

你可以把它無論你想 – dan

回答

2

就像@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) 
    } 
} 

並記住

  1. 導入UserNotifications框架,您使用此代碼。
  2. 如果您註冊了遠程通知你需要實現didRegisterForRemoteNotificationsWithDeviceToken方法在AppDelegate
+0

但要求用戶授權之前,我可以叫'UIApplication.shared.registerForRemoteNotifications() '先得到令牌?或者我必須在用戶授權後等待? – NeoWang

+0

@NeoWang如果用戶尚未授予,此方法實際上會啓動權限請求。並且請記住,沒有許可,您不會獲得設備令牌。 – Adeel