2017-03-27 38 views
1

当iOS应用程序收到推送通知时,会出现一种奇怪的情况。 UI保持锁定状态,没有任何效果。当我暂停调试器时,我在我的线程中看到semaphore_wait_trapisRegisteredForRemoteNotifications用semaphore_wait_trap锁定用户界面

Debbuging的代码,我可以看到它关系到两两件事:

  • 在推送通知的值类型(因为当我改变号码为String问题消失);
  • isRegisteredForRemoteNotifications方法(因为当我删除它的问题消失);

我收到一个推送通知如下

{aps: 
    {alert: { loc-args: [Fiat, Bravo, 501], 
    loc-key: SOME_TEXT 
    }, 
    badge: 0, 
    sound: default.aiff 
    } 
} 

我在Xcode中提出了新的简单的项目,以证明我在说什么。我使用之前的包标识符来接收相同的推送。 按照AppDelegate中,显示该问题的代码:

@implementation AppDelegate 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 
    return YES; 
} 

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 

    NSLog(@"My token is: %@", deviceToken); 
} 

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error { 
    // [DefaultMethods saveInUserDefaults:@(1) forKey:kUserWasAskedForNotificationKey]; 
    NSLog(@"Failed to get token, error: %@", error); 
} 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 

    if([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]){ 
     NSLog(@"Success"); 
    } 
} 


@end 

感谢您的帮助!

回答

0

我处理这个问题也是一样,在我的设备的日志中发现此错误:

com.apple.usernotifications.usernotificationservice:异常接收消息的解码过程中抓住 ,丢弃进入的消息。 异常:解码参数0(调用#2)时出现异常: 异常:键“NS.objects”的值为意外类 'NSNumber'。允许的类是'{( NSString, NSArray)}'。

在调用isRegisteredForRemoteNotifications之后,应用程序已停止。

我们已经解决了我们的服务器上的这个问题,问题出现了。祝你好运。