[英]App crash when launch with a push notification
我已經為我的應用程序集成了推送通知。 為了捕捉通知,我使用了這個委托。
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
在我的應用程序委托中。
所以當應用程序在后台運行時,如果通知來了,當我點擊它時,這個委托就會觸發。 如果應用程序即使在后台也沒有運行,如果點擊 ntification 然后它會觸發
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
到目前為止它運作良好。 然后我想在后台捕捉通知。 所以我發現
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
這對它有用。
所以我只是將我以前的didReceive
方法更改為這個新的didReceive
方法。 現在我的問題是當應用程序通過推送通知啟動時(如果應用程序不在后台或前台運行,並且當出現時單擊通知)我的應用程序崩潰。 即使我無法調試和捕捉這種情況。
這兩個代表有什么區別。 當應用程序通過通知啟動時,我的第二個代表是否會觸發? 請幫我。
通常,當收到通知時,此方法會執行(當應用程序處於活動狀態時) - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
但是如果應用程序被系統關閉或殺死,那么單擊通知首先調用“didFinishLaunchingWithOptions”方法,我們必須檢查應用程序是從通知啟動還是重新啟動,我們可以使用此代碼調用“didReceiveRemoteNotification” ”的方法
UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (notification) {
[self application:application didReceiveRemoteNotification:(NSDictionary*)notification];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.