2012-05-01 99 views
1

我終於從UrbanAhiphip推送了推送通知。但現在我遇到了一個問題,在這裏搜索並找不到解決方案。UrbanAirship iOS推送通知錯誤

當應用程序正在運行並收到通知時,單擊通知會將我帶入應用程序,並且一切正常。

當我殺了應用程序並收到通知時,該應用程序將與SIGKILL一起死亡。

這裏是日誌:log

OK,這是我的appdelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
//Init Airship launch options 
NSLog(@"Before NSMutableDictionary"); 
NSMutableDictionary *takeOffOptions = [[NSMutableDictionary alloc] init]; 
[takeOffOptions setValue:launchOptions forKey:UAirshipTakeOffOptionsLaunchOptionsKey]; 

// Create Airship singleton that's used to talk to Urban Airship servers. 
// Please populate AirshipConfig.plist with your info from http://go.urbanairship.com 
NSLog(@"Before takeOff"); 
[UAirship takeOff:takeOffOptions]; 


// Register for notifications 
NSLog(@"Before UIApplication"); 
[[UIApplication sharedApplication] 
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | 
            UIRemoteNotificationTypeSound | 
            UIRemoteNotificationTypeAlert)]; 

NSLog(@"Before reset badge"); 
//reset badge 
application.applicationIconBadgeNumber = 0; 

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
self.window.rootViewController = self.viewController; 

[self.window makeKeyAndVisible]; 



return YES; 
} 

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{ 
NSLog(@"didRegisterForRemoteNotifications"); 
[[UAirship shared] registerDeviceToken:deviceToken]; 
} 

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 
{ 
NSString *str = [NSString stringWithFormat: @"Error: %@", error]; 
NSLog(@"Error:%@",str); 
} 

這個Mac Mini的前不勝感激任何幫助穿過窗口:-)

+0

此外:似乎這隻發生在設備連接到Mac ....這是正常的行爲? – Tony

回答

1

這與我認爲沒有任何關係的城市飛艇。如果您:

  1. 在設備
  2. 運行應用程序創建一個全新的項目
  3. 插件
  4. 力從手機關閉應用程序(你可能必須嘗試 重新打開它)

您將得到相同的錯誤消息。

由於它發生在一個全新的項目中,甚至沒有觸及它,我認爲這種行爲是預期的。

0

您曾提到...

當我殺應用程序,我得到一個通知,應用程序與SIGKILL死亡。

我會檢查你的applicationDidBecomeActive:(UIApplication *)應用程序的方法。 Apple文檔說...

調用此方法可讓您的應用程序知道它已從非活動狀態移至活動狀態。這可能是因爲您的應用程序是由用戶或系統啓動的。如果用戶選擇忽略將應用程序臨時發送到非活動狀態的中斷(例如傳入電話或SMS消息),則應用程序也可以返回到活動狀態。

您應該使用此方法重新啓動應用程序處於非活動狀態時暫停(或尚未啓動)的任何任務。例如,您可以使用它來重新啓動計時器或節省OpenGL ES幀速率。如果您的應用之前位於後臺,您也可以使用它來刷新應用的用戶界面。