8

我使用以下代码注册我的应用程序以接收推送通知,我收到了要求我注册推送通知的警报,我不小心按下了取消。现在我想再次发出警报,以便我可以触发委托方法以获取设备令牌。但是我不再收到此警报,每次打开设置时,我发现该应用程序的通知已关闭。我试图从设备中删除应用程序,更改应用程序版本,删除测试配置文件,清理目标,即使我重置了所有 iPhone 设置,但仍然无法解决这个问题。非常感谢任何帮助,谢谢

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     UIRemoteNotificationTypeBadge | 
     UIRemoteNotificationTypeAlert | 
     UIRemoteNotificationTypeSound];  
4

7 回答 7

6

苹果推荐的重置通知方式

当然,仅在开发期间。

如果你想模拟你的应用程序的首次运行,你可以让应用程序卸载一天。您可以按照以下步骤实现后者,而无需实际等待一天:

从设备中删除您的应用程序。完全关闭设备并重新打开。前往“设置”>“通用”>“日期和时间”,将日期提前一天或更长时间。再次完全关闭设备,然后重新打开。

不要忘记将其完全关闭并重新打开。

于 2012-10-16T22:24:16.757 回答
3

设置中有通知选项。查看您的应用程序并从那里打开通知。

我在某处了解到,iOs 4 有这个错误,即使您删除并重新安装应用程序,它也不会再次询问。

尝试设置->通知->您的应用程序->打开它。

希望能帮助到你。谢谢

于 2011-06-13T11:58:11.247 回答
2

似乎这个问题从未得到完全回答,所以这里是:

您无法使实际更改设置的内置提示出现,但您可以手动检查当前是否为您的应用启用了推送通知,如果现在则显示您自己的警报。这是我使用的函数的样子:

+ (BOOL) arePushNotificationsEnabled 
{
    return [[UIApplication sharedApplication] enabledRemoteNotificationTypes] != UIRemoteNotificationTypeNone;
}
于 2013-03-05T22:51:50.440 回答
1

在 iOS 上重置推送通知权限警报

首次启用推送的应用程序注册推送通知。iOS 会询问用户是否希望接收该特定应用的远程通知。一旦用户对此警报做出响应,它就不会一次又一次地出现,除非设备已恢复或应用程序已被卸载至少一天。

如果你想模拟你的应用程序的首次运行,你可以让应用程序卸载一天。您可以按照以下步骤实现后者,而无需实际等待一天:

  1. 从设备中删除您的应用程序。
  2. 完全关闭设备并重新打开。
  3. 前往“设置”>“通用”>“日期和时间”,将日期提前一天或更长时间。
  4. 再次完全关闭设备,然后重新打开。

有关更多详细信息,请查看此

于 2014-06-19T10:12:35.490 回答
0

确保在 AppDelegate 的 didFinishLaunchingWithOptions 调用此方法

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

这样每次应用程序都会要求通知

还要检查您的设备设置以检查通知是否打开?

于 2011-06-13T11:58:43.957 回答
0

您所要做的就是从您的注册码中删除其中一种通知方法,它会再次要求您允许通知(例如删除 UIRemoteNotificationTypeSound)

于 2011-06-25T00:30:56.763 回答
-1

为了让我们的应用一次又一次地问它..打电话

[[UIApplication sharedApplication] unregisterForRemoteNotifications];

第一的。然后打电话

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

希望有帮助。谢谢。

于 2012-07-17T13:57:31.240 回答