我已按照本教程http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1
正如教程中所述,已成功从服务器发送通知。但我没有在我的设备中得到它。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
if(![[NSUserDefaults standardUserDefaults] valueForKey:@"UUID"])
{
if (SYSTEM_VERSION_LESS_THAN(@"6.0"))
{
deviceID = [self GetUUID];
}
else
{
NSUUID* udid= [UIDevice currentDevice].identifierForVendor;
deviceID = [udid UUIDString];
}
[[NSUserDefaults standardUserDefaults] setValue:deviceID forKey:@"UUID"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
else
{
deviceID = [[NSUserDefaults standardUserDefaults] valueForKey:@"UUID"];
}
return YES; }
- (NSString *)GetUUID {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return (__bridge NSString *)string; }
答案 0 :(得分:1)
您是否在申请代表中实施了application:didReceiveRemoteNotification:
?当你在应用程序中时,会收到通知。
或者是否没有通知发送给您?
答案 1 :(得分:1)
对于推送通知,您必须使用推送通知令牌注册。 iOS返回带有空格的推送通知令牌,您必须将其删除:
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSString *token = [[devToken description] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"<>"]];
token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"token: %@", token);
}
答案 2 :(得分:0)
有效负载的大小是多少?最大长度为256字节。如果你的有效载荷超过了这个限制,它可能会说推送已经成功发送,但Apple却默默地拒绝它。