在 iPhone 上确定用户是不是启用了本地通知

Posted

技术标签:

【中文标题】在 iPhone 上确定用户是不是启用了本地通知【英文标题】:Determine on iPhone if user has enabled local notifications在 iPhone 上确定用户是否启用了本地通知 【发布时间】:2012-01-28 11:18:11 【问题描述】:

我正在寻找一种方法来确定用户是否通过设置启用或禁用了我的应用程序的本地通知。 这里我没有使用推送通知

谢谢。

【问题讨论】:

@akshata 如果您对之前的问题确实有答案,请接受。否则你得到答案的机会就更少了。 【参考方案1】:

在 1 秒内设置带有 fireDate 的测试通知。 检查它是否被调用

(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification)

【讨论】:

这个测试没有帮助。如果用户在设置中禁用了应用的本地通知,它们仍会在应用打开时发送。 现在 2 年后看看这个更好的解决方案:***.com/questions/26051950/…【参考方案2】:

ios5.0 之前,本地通知始终可用。

由于 iOS8.0 存在检测它是否被用户禁用的方法:https://***.com/a/26052687/751932

在 iOS 5.0 到 8.0 之间没有公开的方式来确定您要求什么

【讨论】:

【参考方案3】:

您可以通过以下方式了解用户注册了哪些类型的通知:

  [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

根据 UIRemoteNotificationType 返回位掩码;

【讨论】:

这不会告诉你用户是否启用了通知,只告诉你他启用了哪些类型。他可以完全关闭通知,这仍然会返回 6(在我的情况下)。有什么方法可以更可靠地检测出来吗? 另外,更重要的是,enabledRemoteNotificationTypes 告诉您启用的 remote 通知类型。 @akshata 正在询问 local 通知。不幸的是,UIApplication API 中没有方法可以显示启用了哪些本地通知。

以上是关于在 iPhone 上确定用户是不是启用了本地通知的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 iPhone 上是不是启用了通知

如何暂时禁用我的 iPhone 应用程序安排的所有本地通知?

iPhone本地通知不会出现[重复]

iPhone iOS:本地通知未出现

React Native 检查是不是在 Android 上启用了应用通知

Iphone Sdk:是不是可以使用 UISwitch 来启用和禁用 PNS(推送通知服务)?