【发布时间】:2014-05-19 13:58:25
【问题描述】:
我的应用程序中有(有)一个工作推送,该应用程序处于开发阶段,可以在应用程序启动后从存储在数据库中的 PHP 脚本发送推送。 但是在 den Message-Center 中禁用和重新启用推送(在 iPhone 上测试)或删除并重新安装(在 iPad 上测试)应用程序后,我无法再次推送到这些设备。我收到了这些设备的新令牌,并从我的数据库中删除了旧令牌。
我用于接收可删除令牌的 php 脚本 (feedback.sandbox.push.apple.com:2196) 没有向我返回任何信息,尽管连接似乎很好。
我确实打电话
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)];
应用每次启动,应用总是顺利注册
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)aDeviceToken;
我可以看到它,因为那时我有一个 NSLog,它显示了令牌
这是我的代码:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
}
-(void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"Registered device with token %@", deviceToken); //Here i'm writing token into Database if not exists
}
-(void) application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"Registering device failed: %@", error);
}
我能做什么?
【问题讨论】:
-
对我来说这似乎更像是一个后端问题。尝试查看您的数据库中是否存在与您设备的 UDID 相同的重复项。还有为什么要删除现有记录并创建新记录?如果已经在数据库中,只需返回此 UDID 的现有令牌,如果记录不存在,则运行您的插入语句。
-
我目前只有 2 个条目,因为我正在弄清楚如何处理那些推送的东西。这两个条目是我的 iPhone 和我的 iPad。当设备注册(NSLog 条目)时,我的数据库中的令牌与我在 AppDelegate.m 中看到的相同。
标签: ios apple-push-notifications