如何判断推送通知是尚未注册还是已关闭?

Posted

技术标签:

【中文标题】如何判断推送通知是尚未注册还是已关闭?【英文标题】:How can I tell whether push notification is not registered yet or has been turned off? 【发布时间】:2018-04-28 01:18:52 【问题描述】:

更具体地说,我想知道我的应用程序的推送通知设置是否在设置应用程序中可用。 如果它们可用,我想从我的应用程序中打开它(使用深层链接)。 如果不是,我想请用户在我的应用中注册推送通知。

我尝试检查UIApplication.shared.isRegisteredForRemoteNotifications,但两种情况都返回false。 我需要支持 ios 9 及更高版本。

【问题讨论】:

【参考方案1】:

您不需要注册远程通知的权限;你可以做到。

您需要获得许可的是显示通知。无论是显示本地通知还是远程通知,权限请求都是一样的。

【讨论】:

查看official 和raywenderlich.com 等推送通知指南,首先使用UNUserNotificationCenter.current().requestAuthorization 请求权限。您的意思是在执行此操作之前可以在“设置”应用中提供推送通知设置吗? 先请求是有道理的,因为如果用户不授予权限,您可能不会费心注册通知,但如果您已注册但未请求显示任何内容的权限,您仍然可以收到静默通知。请注意您使用的方法是RegisteredForRemoteNotifications - 它与您是否已注册有关,而不是与权限有关。您使用UNUserNotificationCenter检查显示通知的权限 谢谢,我想我明白了!我这周正在休假,可能要到下周才能试用。

以上是关于如何判断推送通知是尚未注册还是已关闭?的主要内容,如果未能解决你的问题,请参考以下文章

如何确定用户是不是尚未注册接收推送通知和/或他们的设置是不是被禁用

在 iOS 8 中取消注册推送通知

即使应用程序关闭,whatsapp 如何设法接收推送通知?

Android推送通知权限判断及跳转到权限设置界面(完善兼容8.0)

通过 Swift 关闭推送通知功能

我怎么知道尚未提供接收推送通知?