iphone - 即使禁用推送通知也会出现
Posted
技术标签:
【中文标题】iphone - 即使禁用推送通知也会出现【英文标题】:iphone - Push Notifications appear even after disabling them 【发布时间】:2012-03-27 09:54:25 【问题描述】:我正在开发一个带有推送通知的应用程序。
但是发生了一些奇怪的事情。
第一个didRegisterForRemoteNotificationsWithDeviceToken
始终执行,即使在禁用通知之后也是如此。我也收到了。
我从来没有收到询问我是否允许推送通知的警报,即使我卸载应用程序,将日历向前移动 2 天并重新启动手机,它也没有要求允许,它假定我确实允许他们。
谁能告诉我为什么会发生这种奇怪的事情?
谢谢
【问题讨论】:
如果您在应用程序的设置中禁用了推送警报视图,您实际上会显示它们吗?这听起来完全错误,如果这是真的,请为它归档一个雷达。 didRegisterForRemoteNotificationsWithDeviceToken 被回调大概是因为他正在调用 registerForRemoteNotificationTypes。它只是通过交还设备令牌来响应。他还说,即使在卸载并重新安装该应用程序之后,他也没有看到第一次“'FooApp' 希望向您发送推送通知”用户权限对话框。详情请见***.com/questions/8033216/…。 【参考方案1】:您究竟是如何禁用通知的? ios 中的设置 UI 并不十分清晰。
我使用此代码在控制台中显示应用的远程推送通知设置。
UIRemoteNotificationType notificationSelection = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (notificationSelection == UIRemoteNotificationTypeNone)
NSLog(@"Push Notifications : DISABLED (%0X)", notificationSelection);
else
NSLog(@"Push Notifications : ENABLED (%0X)", notificationSelection);
if (notificationSelection & UIRemoteNotificationTypeBadge)
NSLog (@"Push Notifications : Badge");
if (notificationSelection & UIRemoteNotificationTypeSound)
NSLog (@"Push Notifications : Sound");
if (notificationSelection & UIRemoteNotificationTypeAlert)
NSLog (@"Push Notifications : Alert");
if (notificationSelection & UIRemoteNotificationTypeNewsstandContentAvailability)
NSLog (@"Push Notifications : Newstand Content Availability");
sendMessage = YES;
【讨论】:
我转到常规 -> 通知,然后禁用正在开发的应用程序。此外,我将手机的日期更改为 2 天后,然后重新启动手机。 我在这里详细介绍只是为了帮助您...请注意,您只需要禁用所有单个选项。仅将“通知中心”设置为关闭是不够的。您还需要将警报样式设置为“无”,并将徽章图标设置为关闭,将声音设置为关闭,并将锁定屏幕中的查看设置为关闭。 任何这些选项都需要单独启用推送通知——这对我来说并不是很明显。我将在上面编辑我的答案以添加我用来在控制台中显示应用程序的远程通知设置的代码。 另外,您希望更改时钟会产生什么效果?通知是由远程服务器根据布尔标志发送的,无论服务器应用程序使用什么其他标准 - iPhone 上的时间都不会产生影响。 我在 *** 的另一个问题中读到,如果您不更改时间,手机不会询问您是否要“允许通知”,我想模拟第一个问题。此外,“didRegisterForRemoteNotificationsWithDeviceToken”每次都执行的事实不是一个奇怪的行为吗?它应该只执行一次吗?第一次? 根据文档,设备应在每次运行时注册通知,因为设备令牌可能会更改。以上是关于iphone - 即使禁用推送通知也会出现的主要内容,如果未能解决你的问题,请参考以下文章