2016-03-13 59 views
0

有沒有辦法提示用戶啓用推送通知,當它實際上有意義?換句話說,不要提示用戶第一次啓動應用程序(使用應用程序委託中的代碼)啓用推送通知,而是延遲提示以在應用程序中的特定點之後(例如發佈演練)。apns - 如何提示用戶僅在推送通知變爲相關時才啓用推送通知?

我已經看到了幾個應用程序,包括谷歌照片和優步,但我不清楚哪一塊代碼實際上是觸發在屏幕上的對話框,如果我可以把它放在應用程序的任何地方。我認爲它是如下(SWIFT):

UIApplication.sharedApplication().registerForRemoteNotifications() 
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
application.registerUserNotificationSettings(settings) 
+1

對於一個良好的用戶體驗火了,強烈建議離開與系統服務的所有郵件* ...想啓用/發送/使用... *他們在哪裏。 – vadian

+0

我知道你不應該擺弄系統驅動的設置,但我的問題是由用戶反饋驅動的。此外,還有很多應用程序可以完成我以後的工作(Google照片就是這樣一個例子)。實際上,它將'釋放不帶plist屬性的應用程序,提示用戶,重寫並保存plist'。思考? – goggelj

回答

0

將下面的代碼的任何地方在您的應用程序,你認爲它的權利(即不是在應用程序委託其他),以提示用戶啓用通知:

UIApplication.sharedApplication().registerForRemoteNotifications() 
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
application.registerUserNotificationSettings(settings) 

要處理各種情況,你可以follow這個答案/線程。

0

其實這是正確的代碼,你可以從任何你想要的

let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
UIApplication.sharedApplication().registerUserNotificationSettings(settings) 
UIApplication.sharedApplication().registerForRemoteNotifications()