2012-05-01 26 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帧速率。如果您的应用之前位于后台,您也可以使用它来刷新应用的用户界面。