当我的iOS应用程序收到推送通知时,会发生奇怪的情况。用户界面保持锁定,无效。当我暂停调试器时,我在我的线程中看到semaphore_wait_trap
。
扩展代码我可以看到它与两件事有关:
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 :(得分:1)
我也在处理这个问题,并在设备的日志中发现了这个错误:
com.apple.usernotifications.usernotificationservice:捕获异常 在接收消息的解码期间,丢弃传入消息。 例外:解码参数0时的异常(调用的#2): 例外:关键'NS.objects'的值是意外类 '的NSNumber'。允许的班级是'{( NSString的, NSArray)}'。
在调用isRegisteredForRemoteNotifications后,应用程序已停止。
我们已在服务器上解决此问题,问题仍然存在。祝你好运。