我需要CloudKit的推送通知,因此我不想要求用戶在首次啓動應用程序時收到通知許可。我只想在實際需要權限的位置詢問用戶。因此,我在應用內設置控制器中添加了兩個按鈕 - 一個允許用戶設置CloudKit,另一個允許用戶在推送通知尚未啓用時啓用推送通知。問題出現在OneSignal應該設置的方式中。該設置應該發生在application:didFinishLaunchingWithOptions:
,並且使用的方法(setupOneSignalWithLaunchOptions:
)需要launchOptions
參數。有沒有辦法從應用程序內的viewController設置OneSignal,而不是從App Delegate?在應用程序之後爲OneSign註冊推送通知:didFinishLaunchingWithOptions
編輯:我想我可以保存launchOptions並使用它們,當我準備在以後安裝OneSignal時。在應用程序的後續啓動中,setupOneSignalWithLaunchOptions:
將按預期方式調用,位於application:didFinishLaunchingWithOptions:
。但是,當用戶最初啓用通知時,我將使用保存的launchOptions
,因爲該應用可能在一段時間內不會再次啓動(它在後臺運行)。
你的編輯是什麼,我會建議你做的。另一種方法是探索'launchOptions'字典來查看裏面的內容,也許你可以很容易地複製它,不過我建議存儲你從'UIApplication'中獲得的內容,因爲如果它將來發生變化,它不會破壞你的應用程序功能。 – EmilioPelaez