如果我理解正確的話,UIApplicationLaunchOptionsRemoteNotificationKey
關鍵是在-[UIApplicationDelegate application:didFinishLaunchingWithOptions:]
方法使用時 - 推收到當應用程序是沒有運行(例如殺死) - 用戶在收到推送點擊什麼是UIApplicationLaunchOptionsRemoteNotificationKey用於?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *userInfo = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
if(userInfo) {
// app was not running and the user clicked on the push
}
}
但是..在這個完全相同的情況下,-[AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:]
也被稱爲在前一個之後。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
// called when
// app was not running and the user clicked on the push
// app was running in background and user clicked on a push
// app was running in background and a silent push was received
// app is in foreground and a push is received
completionHandler(UIBackgroundFetchResultNewData);
}
所以現在的問題是,我爲什麼要使用UIApplicationLaunchOptionsRemoteNotificationKey
如果一切都可以在application:didReceiveRemoteNotification:fetchCompletionHandler
委託處理?我錯過了什麼?
歡呼聲,
月
因爲您應該能夠在導航堆棧中深處處理遠程通知的隨機_view _...或只是隨機_controller _...或只是隨機_model _...是不合邏輯的依賴應用程序代表會在你的例如_model_,這是沒有意義的,這就是爲什麼單個實例可以監聽通知,並且如果他們醒來,他們可以立即進行更改,獨立於應用程序委託 - 技術上在最後三種情況下,您已經提到過。 – holex