jfj*_*kls 6 xcode ios swift3 xcode8
我阅读了如何控制何时在iOS中提示用户推送通知权限和类似问题,但它们不是用Swift 3编写的.
我在Xcode 8/Swift 3.0中阅读过注册推送通知?五次.
我一遍又一遍地在模拟器中运行我的应用程序但是在第一次之后,应用程序从未提示用户提供推送通知权限.
我在Xcode 8/Swift 3.0中使用了注册推送通知的代码?并继续尝试不同的答案并将代码移动到不同的地方,以便只有在按下某个按钮后才会要求用户许可,而不是在应用程序启动时立即.
我是否必须使用Apple ID等注册推送通知代码才能在Simulator中工作?
首先,您应该只提示用户一次是否想要接收推送通知。因此,将其与按钮绑定并每次都尝试运行它是一个糟糕的用户体验决策。仅当按钮实际上执行更多需要启用推送通知的操作时,才将推送通知提示绑定到按钮。
要为您的用户注册推送通知,您应该使用该UIApplication registerForRemoteNotifications方法。当此方法运行时,系统将提示您的用户是否要接收推送通知 - 但仅限一次!他们设置的设置将被视为最终设置,并且不会再次提示您的用户。如果他们想开始接收推送通知,则必须在应用程序的设置中进行更改。这是预期的行为,也是您应该这样做的方式。
如果您只想在用户按下按钮时提示用户,请删除对registerForRemoteNotifications应用程序启动代码的所有调用,并从与按钮绑定的操作中调用该方法。
如果您想出于测试目的重置推送通知权限,Apple 表示可以这样做:
在 iOS 上重置推送通知权限警报
当支持推送的应用程序第一次注册推送通知时,iOS 会询问用户是否希望接收该应用程序的通知。用户响应此警报后,除非设备恢复或应用程序已卸载至少一天,否则不会再次显示。
如果您想模拟应用程序的首次运行,您可以将应用程序卸载一天。您可以按照以下步骤实现后者,而无需等待一天:
- 从设备中删除您的应用程序。
- 完全关闭设备并重新打开。
- 转到“设置”>“常规”>“日期和时间”,然后将日期提前一天或更多。
- 再次完全关闭设备并重新打开。