I read 如何控制何时在 iOS 中提示用户推送通知权限 https://stackoverflow.com/questions/30817069/how-to-control-when-to-prompt-user-for-push-notification-permissions-in-ios和类似的问题,但它们不是用 Swift 3 编写的。
我读过了在 Xcode 8/Swift 3.0 中注册推送通知? https://stackoverflow.com/questions/37956482/registering-for-push-notifications-in-xcode-8-swift-3-0/37956783五次。
我一遍又一遍地在模拟器中运行我的应用程序,但是第一次之后,应用程序从未提示用户授予推送通知权限。
我使用的代码来自在 Xcode 8/Swift 3.0 中注册推送通知? https://stackoverflow.com/questions/37956482/registering-for-push-notifications-in-xcode-8-swift-3-0/37956783并不断尝试不同的答案并将代码移动到不同的地方,以便仅在用户按下某个按钮后才会请求许可,而不是立即请求许可当应用程序启动时。
我是否必须注册 Apple ID 等才能获取推送通知代码work在模拟器中?
首先,您应该只提示您的用户once他们是否想要收到推送通知。因此,将其与按钮绑定并每次都尝试运行它是一个糟糕的用户体验决策。仅当按钮实际上执行更多需要启用推送通知的操作时,才将推送通知提示绑定到按钮。
要注册您的用户以接收推送通知,您应该使用UIApplication
registerForRemoteNotifications https://developer.apple.com/reference/uikit/uiapplication/1623078-registerforremotenotifications方法。当此方法运行时,系统将提示您的用户是否要接收推送通知 - 但仅限一次!他们设置的设置将被视为最终设置,并且您的用户将not再次提示。如果他们想开始接收推送通知,则必须在应用程序的设置中进行更改。这是预期的行为,也是您应该这样做的方式。
如果您只想在用户按下按钮时提示用户,请删除对registerForRemoteNotifications
从应用程序的启动代码中调用该方法,然后从与按钮绑定的操作中调用该方法。
如果您想重置推送通知权限用于测试目的, 苹果公司是这么说的: https://developer.apple.com/library/content/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG42
在 iOS 上重置推送通知权限警报
当支持推送的应用程序第一次注册推送通知时,iOS 会询问用户是否希望接收该应用程序的通知。用户响应此警报后,除非设备恢复或应用程序已卸载至少一天,否则不会再次显示。
如果您想模拟应用程序的首次运行,您可以将应用程序卸载一天。您可以按照以下步骤实现后者,而无需等待一天:
- 从设备中删除您的应用程序。
- 完全关闭设备并重新打开。
- 前往“设置”>“常规”>“日期和时间”,然后将日期提前一天或更多。
- 再次完全关闭设备并重新打开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)