如何检查用户之前是不是在 iOS 中查看过推送通知权限警报视图?

Posted

技术标签:

【中文标题】如何检查用户之前是不是在 iOS 中查看过推送通知权限警报视图?【英文标题】:How to check whether user has seen the push notification permissions alert view before in iOS?如何检查用户之前是否在 iOS 中查看过推送通知权限警报视图? 【发布时间】:2015-03-26 19:00:34 【问题描述】:

我想在显示推送通知权限警报视图之前,在应用启动时向用户显示一条消息。为了确定是否应该显示消息,我需要知道用户之前是否看过推送通知权限警报视图。

【问题讨论】:

【参考方案1】:

您可以使用 NSUserDefaults。

在您调用 regusterNotifications: 后显示权限。

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasShown"];
[[NSUserDefaults standardUserDefaults] synchronize];

检查是否显示,假设 hasShown 的布尔值为 Yes。

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"hasShown"])
    // user has seen before

请注意,这仅检查之前是否已发送权限请求。这不会验证您的推送通知是否仍然为给定的应用程序激活。

【讨论】:

这样做的问题是,如果您将其作为对现有应用程序的更新,它将不准确。 @Marty - 想法:作为密钥,而不是 @"hasShown" 你可以这样做:[NSString stringWithFormat: @"shownIn-%@", [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"]]

以上是关于如何检查用户之前是不是在 iOS 中查看过推送通知权限警报视图?的主要内容,如果未能解决你的问题,请参考以下文章

了解过去是不是在 iOS 上显示过推送通知权限提示

检查用户是不是在代号中接受了 iOS 中的推送通知权限

如何在 ios Objective c 中检查推送通知是不是在后台模式下接收?

为 iOS 发送 9000/s 推送通知

如何在出现之前过滤 ios 推送通知

实现推送通知服务器:如何检查传递设备令牌的消息是不是来自真实设备?