我正在尝试在我的应用中实现推送功能。我跟着link,我一直在使用直到PushMeBaby app。得到了设备令牌,但是我尝试使用PushMeBaby,出现了一个带有 push 按钮的窗口,当我突然出现时,什么也没发生。 请帮我实现这个功能。
谢谢。
修改
我还尝试了here中提到的链接,从我可以看到的评论中,所有这些都是精彩的教程。
任何帮助都将不胜感激。
答案 0 :(得分:2)
确保您已完成以下操作:
从Apple Developer Portal成功检索并创建了APNS的SSL证书
在您的应用中插入了正确的捆绑包
使用与推送通知所使用的相同应用ID相同的开发证书创建并签署了您的应用
您的设备令牌绝对正确(即xxxxxxxxxxx,没有空格,没有破折号等,只有字符)
如果这一切都正确,那肯定会有效。我认为您的问题可能是您没有使用与启用了推送通知的App ID相关联的开发证书对您的应用进行签名,或者推送通知的SSL证书存在问题。有一个很棒的教程here。我希望这有帮助!
顺便说一下,当你确实让它工作并且你有兴趣向拥有你的应用程序的每个人(而不仅仅是你自己)发送推送通知时,我建议你看看EasyAPNS。
答案 1 :(得分:1)
这是一份清单:
答案 2 :(得分:1)
以下代码放入实现.m文件
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//Push notifation Delegate Methods.
NSLog(@"Registering for push notifications...");
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound)];
}
实现Push通知的Delegate方法。
#pragma mark pushnotification
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// Prepare the Device Token for Registration (remove spaces and < >)
NSString *devToken = [[[[deviceToken description]
stringByReplacingOccurrencesOfString:@"<"withString:@""]
stringByReplacingOccurrencesOfString:@">" withString:@""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
NSString *str = [NSString
stringWithFormat:@"Device Token=%@",devToken];
NSLog(@"device token - %@",str);
REST *rest = [[REST alloc] init];
[rest resiterForNotification:@selector(notificationRegister_response_arrives:) andHandler:self andToken:devToken];
[rest autorelease];
}
-(void)notificationRegister_response_arrives:(id)object{
NSLog(@"%@",object);
if ([object isKindOfClass:[NSDictionary class]]) {
if([object valueForKey:@"error"]) {
NSLog(@"oh!! errors");
}else {
}
}
}
答案 3 :(得分:1)
atlast我找到了这个bug。我在问题中提到的教程很棒。但我无法在我的越狱设备上实施。但是当我在其他越狱和非越狱的iPhone上尝试相同的步骤时。它工作正常。所以,错误在于我的设备。当我将iO升级到版本4.3.3时,推送通知功能被禁用。但是当我检查设置时没关系。所以我按照here中的步骤操作,我开始工作了,现在我收到了通知。
谢谢大家。