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

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

谢谢。

【问题讨论】:

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

标签: objective-c ios4 ios5 ios-simulator


【解决方案1】:

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

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

【讨论】:

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

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

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

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

【讨论】:

    【解决方案3】:

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

      [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
    

    根据 UIRemoteNotificationType 返回位掩码;

    【讨论】:

    • 这不会告诉你用户是否启用了通知,只告诉你他启用了哪些类型。他可以完全关闭通知,这仍然会返回 6(在我的情况下)。有什么方法可以更可靠地检测出来吗?
    • 另外,更重要的是,enabledRemoteNotificationTypes 告诉您启用的 remote 通知类型。 @akshata 正在询问 local 通知。不幸的是,UIApplication API 中没有方法可以显示启用了哪些本地通知。
    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    相关资源
    最近更新 更多