簡體   English   中英

UrbanAirship的iOS推送通知錯誤

[英]iOS Push Notification error with UrbanAirship

我終於從UrbanAirship獲得了推送通知。 但是現在我有一個問題,在這里搜索並找不到解決方案。

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

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

這是日志: log

好的,這是我的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通過窗口之前,將不勝感激任何幫助:-)

我認為這與城市飛艇無關。 如果你:

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

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

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

你確實提到...

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

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

調用此方法可讓您的應用知道它已從非活動狀態變為活動狀態。 發生這種情況是因為您的應用是由用戶或系統啟動的。 如果用戶選擇忽略將應用程序暫時發送到非活動狀態的中斷(例如來電或SMS消息),則應用程序也可以返回到活動狀態。

您應使用此方法重新啟動應用程序處於非活動狀態時已暫停(或尚未啟動)的所有任務。 例如,您可以使用它重新啟動計時器或限制OpenGL ES幀速率。 如果您的應用先前位於后台,則還可以使用它刷新應用的用戶界面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM