如何清除我的应用程序的iOS推送通知?

问题描述:

Hello安装应用程序时,它会要求用户发送推送通知的权限。 我正在测试我的应用程序。但是将其从设备中删除后再安装它不再需要许可。 如何删除这些设置以使其再次获得许可?如何清除我的应用程序的iOS推送通知?

我需要它来测试服务器推送通知。

+1

请参阅[我的回复](http://*.com/questions/6780795/reset-push-notification-settings-for-alert/10207040#10207040)到一个类似的问题和更多关于这个问题一般在[另一个答案](http://*.com/questions/10191006/objective-c-detect-when-user-change-the-apps-notifications-settings)。简而言之,苹果在[技术说明TN2265](http://developer.apple.com/library/ios/#technotes/tn2265/_index.html)中概述了一个程序,但它看起来并不总是有效。 – Amiramix 2012-04-18 11:24:40

+0

此问题的接受答案似乎已过时。看到我下面的答案,每次都适合我。 – 2014-09-25 07:58:38

+0

可能的重复[重置推送通知设置为应用程序](http://*.com/questions/2438400/reset-push-notification-settings-for-app) – BergQuester 2015-05-27 16:50:37

iOS推送通知的允许对话框每24小时出现一次..因此,您需要手动修改设备日期并将其设置为对话框出现的日期后1天。

+0

我使用easyApns https://github.com/manifestinteractive/easyapns 有一张表,其中有三个字段:pushbadge,pushalert,pushsound 在一部手机上测试,我单击了“允许”,但请求来到桌子上的记录全部禁用了,所以我再次参加了测试。 – EndyVelvet 2012-04-01 13:29:21

+0

不再有效 – jjxtra 2012-04-18 16:41:34

我读过一次,你必须完全从你的设备中删除应用程序,并等待24小时,然后重新安装它(建议关闭一个完整的设备),这样它会再次要求你的权限,但我从来没有试过了。无论如何,我不认为你真的需要再次获得这些权限,你为什么需要这些权限?

请尝试使用UIApplication的 - (void)unregisterForRemoteNotifications 方法。

+0

这不适合我;所有方法和委托方法都被调用,但我仍然没有提示重新注册推送通知。在iOS 7上测试。 – toblerpwn 2014-08-02 00:44:21

正如J S Rodrigues所说,您可以随时取消注册您的设备。但我不确定你为什么试图再次要求获得许可。如果你在你自己的服务器上运行APN,那么在注册你的设备后,从 - (void)应用程序:(UIApplication *)应用程序设备令牌didRegisterForRemoteNotificationsWithDeviceToken :(NSData *)deviceToken方法应该被发布到你的APN系统,对全部。 因此,如果您试图测试设备令牌是否可以发布到您自己的系统,则可能需要取消注册方法。 否则,没有必要这么做,因为令牌记录在您的系统中,您可以将其删除。每次应用启动时,APN系统都会添加一条新记录。

在iOS 6.0上运行时,“删除并等待24小时”方法对我无效。取消注册/重新设备令牌也不起作用,这似乎是Apple的一个漏洞。来自Apple的The technical note最近于2011年9月更新并显示为过时。

我只能通过完全重置设备才能再次触发权限警报。这对于测试来说是相当痛苦的,但它起作用。

不幸的是,如果用户改变了关于从您的应用接收推送通知的想法,就没有办法要求用户这样做,因此请确保您在最佳时间要求获得许可。

这只是iOS7工作对我来说:

  • ,从设备删除您的应用程序。

  • 完全关闭设备并重新打开设备。

  • 转到设置>常规>日期&时间和设置日期提前一天或更多。

  • 再次完全关闭设备并重新打开设备。

  • 重新安装应用程序

您可以为在这里看到:https://developer.apple.com/library/mac/technotes/tn2265/_index.html如下。

重置iOS上的推送通知权限警报 第一次为推送通知注册推送应用程序时,iOS会询问用户是否希望接收该应用程序的通知。一旦用户对此警报作出响应,除非设备已恢复或应用程序已卸载至少一天,否则不会再次出现。

如果要模拟应用程序的首次运行,可以将该应用程序卸载一天。您可以通过以下步骤实现后者,而无需实际等待一天:

从设备中删除您的应用程序。 完全关闭设备并重新打开设备。 转到设置>常规>日期&时间并设置日期提前一天或更长时间。 再次完全关闭设备并重新打开设备。

+1

这对开发人员非常友好。 – 2015-11-20 10:23:31