我在iOS7中遇到了推送通知問題。推送通知不適用於iOS7,但它們適用於iOS6
我已經開發了iOS6的應用程序,並且推送通知工作得很好。但是,當我將該應用程序放入iOS7設備時,該程序無法運行。
但是,發生了一些非常奇怪的事情。如果我使用開發密鑰,我的iOS7設備可以接收推送,但使用生產密鑰,它不能。
我可以得到我的推送令牌,但它不能接收任何東西。
有什麼想法?
這是我的代碼:
Appdelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// PUSH-CODE
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
....
}
// PUSH-CODE
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSString *token = [[deviceToken description] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"<>"]];
token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"Token: %@", token);
[[NSUserDefaults standardUserDefaults] setObject:token forKey:@"deviceToken"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"Failed to get token, error: %@", error);
}
您確定您使用的是正確的設備令牌嗎?請注意,當您使用沙箱供應配置文件爲您的應用程序簽名時,您將獲得與使用生產供應配置文件時所獲得的設備令牌不同的設備令牌。另外請注意,當您從iOS6切換到iOS7時,您的設備可能會有新的設備令牌(每次推送env)。 – Eran
@Eran請檢查標題:「推送通知不能在iOS7中工作,但他們在iOS6中工作」,所以他的代碼是OK – 2013-10-24 22:02:40
我有同樣的問題,任何人都可以弄明白嗎? – lorixx