我正在构建一个严重依赖APN的应用程序。在我的应用第一次启动后,iOS询问是否允许此应用使用APN(由于拨打registerForRemoteNotificationTypes:
)。然而一旦被解雇,这个对话永远不会回弹。我必须手动去Settings->Notifications->MyApp
启用/禁用那里的东西。那么是否有一种方法可以避免这种喧扰,并且实际体验到每次在调试模式下启动我的应用时,用户在第一次启动时都会遇到什么?如何取消“允许推送通知”对话框后被解除一次?
回答
这里是你如何Apple say做到这一点:
重置推送通知权限警报iOS上
第一时间推送通知启用推送应用注册, 的iOS询问用户是否希望收到该应用的通知。 一旦用户回应此警告,除非该设备恢复或应用程序已经在 每天至少被卸载了它不会被再次提出 。
如果你想模拟首次您的应用程序的运行,你可以离开 卸载了一天的应用程序。您可以实现后者没有 实际上按照下列步骤等待一天:
,从设备删除您的应用程序。
完全关闭设备并重新打开设备。
转到设置>常规>日期&时间和设置日期提前一天或更多。
再次完全关闭设备并重新打开设备。
哇...好的工作苹果:)但谢谢你!总比没有好。我会给它一个镜头。 – Schultz9999
副作用:如果您在启用了iMessages的iDevice上执行此操作,将有一天移动到未来将禁用iMessage。因此,完成上述步骤并重置时钟后,请记住重新启用iMessages,否则您将无法发送或接收 –
我刚刚发现的某些内容:重置权限后,只要提示再次显示,您就可以转向关闭/打开电话而不是回答提示,这会在下一次应用程序运行时再次提示。用于更改代码试图找出是否/何时某些代码路径会导致提示。 –
当前他们是否编程方式来提示用户重新接受推迟通知后,他们已经决定说不。
您应该简单地检查您是否被授予访问权限,如果不显示提示用户手动授予隐私设置权限的视图,以启用应用程序的推送通知功能。
我甚至不想找到一种方法来问同样的事情。我所需要的基本上是使系统进入初始状态。但我明白你的观点。这是我以后通过调用'[[UIApplication sharedApplication] enabledRemoteNotificationTypes]'所做的。问题是我想在应用程序启动时采取不同的行为。我可以尝试使用我想的相同方法。 – Schultz9999
我明白你想要做什么,但不幸的是这是不可能的(除非有一些未公开的私有API来这样做)。 – Woodstock
因为时间就是金钱和其他方法采取永远,只是改变你的包ID一遍又一遍调试时,每次通知将得到查询清新。一旦您满意代码返回到原始包ID。
我认为这绝对是最好的,最快速和最安全的方式,让应用程序回到它的初始状态。 – ooxio
但是您是否需要一直更改配置文件? –
@VanDuTran我不必,推动仍然为我工作。但即使你不得不这样做,它也会比当前标记的解决方案快得多。哈哈! –
在iOS 9.x中,每次删除应用程序并重新安装时,都可以获得提示。对于AppStore生产下载和adhoc模式都是如此。设备令牌每次都是唯一的。
@chengsam在iOS 10中验证了这一点。
我的问题是没有注册UserNotificationSettings。这允许APN工作,但不允许背景声音或徽章。
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
如果您只是测试Push Notifications提示正确显示,请使用模拟器。您只需卸载该应用程序并重新安装,并在您尝试注册推送通知时再次出现提示。
在IOS10我现在可以通过删除应用程序再次获得提示。
这是iOS 8的当天回来 –
- 1. 检测用户对“允许推送通知”对话框的响应
- 2. 允许通知在调用stopForeground(false)后被取消
- 3. 允许推送通知版本控制
- 4. 如何允许取消对在Windows文件对话框优雅
- 5. 推送通知对话
- 6. 我如何知道用户是否允许推送通知
- 7. 删除对话框后仍然收到推送消息
- 8. 如何本地化推送通知配置对话框警报?
- 9. 单击确定或不允许后,xcode推送通知
- 10. 要求用户在注册过程后允许推送通知
- 11. 如何取消从通知中心,这是推送通知
- 12. 如何处理推送通知允许从iOS中的设置
- 13. 推送通知推送出现两次?
- 14. 的iOS:如何获得推送通知对象用户通知警告对话框中选择后,“取消”,然后启动应用程序手动
- 15. Swift取消推送通知显示前
- 16. 在解析推送通知框架
- 17. 特别提醒用户何时允许推送通知
- 18. 如何创建通知取消对话框?
- 19. 通过“允许推送通知”警报进行控制
- 20. iOS推送通知消息
- 21. 如何知道用户在推送通知中点击“不允许”
- 22. 如何解除对话框?
- 23. 如何删除推送通知API
- 24. 苹果公司允许的推送通知的最大允许数量
- 25. 提醒允许或不允许Apple应用程序中的推送通知
- 26. 如何一次发送多个推送通知使用Android推送锐利库?
- 27. 嵌套对话框:消息被发送两次
- 28. 修改推送通知的权限请求对话框
- 29. 当我收到推送通知时无法创建对话框
- 30. WorkLight触发iOS推送通知权限对话框
检查此链接http://stackoverflow.com/questions/10191006/objective-c-detect-when-user-change-the-apps-notifications-settings – Pawan
你应该将此标记为已回答,因为下面的方法会工作(对于iOS 7.0+)。 – LucasA
@LucasA由谁? – Schultz9999