没有得到推送通知警报请求iPhone

时间:2012-09-05 12:38:22

标签: iphone ios push-notification

我对这个发展很陌生,所以请帮帮我

我正在使用此代码启动推送通知

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

但是,在我的设备上,我没有收到推送通知用户权限提示“应用名称”想发送通知

我发现如果设备被监禁,那么我们就不会收到权限提醒信息,但我的设备没有被监禁。

编辑

我也在我的设备上收到推送通知,只是在第一次启动时没有获得许可警报。

对此的任何帮助都会非常感激。

4 个答案:

答案 0 :(得分:13)

来自:https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG42

  1. 从设备中删除您的应用。
  2. 完全关闭设备并重新打开。
  3. 转到设置>一般>日期&时间并将日期设定为一天或更长时间。
  4. 再次完全关闭设备并重新打开。

  5. 重新安装应用

  6. 我刚刚在iOS 7.1上测试过它的确有效。请注意,这需要关闭设备TWICE。

答案 1 :(得分:10)

我发现推送通知权限警报仅在第一次启动应用程序时出现,即使我们删除应用程序,也不会发出权限警报。即使应用程序卸载超过7天,仍然不会出现许可警报。

当我在不同的设备上测试我的应用程序时,我发现了这个问题,第一次应用程序运行时,权限警报只出现一次。

希望这些信息可以帮助那些同样面临同样问题的人。

答案 2 :(得分:5)

如果您使用IOS S.1 /5.1 +,请阅读推送通知指南App Store Review Guidelines

Apple Document

推送启动应用首次注册推送通知时,iOS会询问用户是否希望接收该应用的通知。一旦用户响应此警报,除非设备已恢复或应用程序已卸载至少一天,否则不会再次显示该警报。

如果您想模拟首次运行的应用,可以将应用程序卸载一天。通过将系统时钟向前设置一天或更长时间,完全关闭设备,然后重新打开设备,您可以实现后者而无需等待一天。

答案 3 :(得分:0)

你需要做这样的事情 - 你也需要注册你的设备。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
}

根据您的状态通知委托方法回调 -

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken 
{

}


- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err 
{
    DebugLog(@"Error in registration. Error: %@", err);
}