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 - 即使禁用推送通知也会出现的主要内容,如果未能解决你的问题,请参考以下文章

如果应用程序在前台,iOS8 禁用推送通知

iPhone 推送通知可靠性

Flutter:即使应用关闭也会推送通知

在应用程序中禁用推送通知

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

即使App已关闭,也会收到Android推送通知