当我的应用位于通知中心时,我如何才能看到 UIRemoteNotificationTypeNone?

Posted

技术标签:

【中文标题】当我的应用位于通知中心时,我如何才能看到 UIRemoteNotificationTypeNone?【英文标题】:How can I be seeing UIRemoteNotificationTypeNone when my app is in the Notification Center? 【发布时间】:2012-08-21 19:36:00 【问题描述】:

我有一个使用 ios 5.1.1 的用户报告说我的应用程序不允许他设置通知,即使他已将它放在通知中心。他给我发了一张截图,显示他已经清楚地把它放在了通知中心。但如果应用不允许他设置通知,那是因为这段代码返回了 notificationIssue == YES:

BOOL notificationIssue = NO;
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (types == UIRemoteNotificationTypeNone) notificationIssue = YES;

当然,我无法访问他的设备,所以我自己无法进一步调查,但我想知道是否有人知道该应用程序如何清楚地显示在通知中心中,带有徽章、声音和警报已启用,但仍无法通过此测试?

我无法重现此问题,而且我没有从其他人那里听说过这个问题。

【问题讨论】:

我遇到了同样的问题,但使用的是开发 APNS 证书。我尝试关闭通知并重新打开,但无济于事。 【参考方案1】:

我也遇到过这种情况([[UIApplication sharedApplication] enabledRemoteNotificationTypes] 返回UIRemoteNotificationTypeNone,即使应用程序位于通知中心并且具有“横幅”的“警报样式”)。

我发现在通知中心将“警报样式”切换为“无”,然后再切换回“横幅”可以解决我的测试设备上的问题。

【讨论】:

【参考方案2】:

enabledRemoteNotificationTypes 仅引用设置->通知中的“警报样式”部分。

如果您将其设置为“无”并保持一切打开,您仍将获得 UIRemoteNotificationTypeNone,而您的 notificationIssue 将是 YES。同样,用户可以禁用通知并将“警报样式”设置为横幅,您的notificationIssue 将设置为NO

这引出了一个真正的问题......我如何找到其余的信息?现在,你没有。 Apple 没有给我们提供查询这些信息的 API。我个人的建议是report it to Apple 并请求 API。这就是我们让他们知道我们希望 API 访问这些信息的方式。

【讨论】:

以上是关于当我的应用位于通知中心时,我如何才能看到 UIRemoteNotificationTypeNone?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 5 的通知中心获取我的应用程序的所有通知

当应用程序在前台时,如何使远程通知出现在通知中心?

设置中的推送通知标志

当我的应用在 fg 上时,我的应用如何发送推送通知?

为 iOS 5 通知中心设置应用默认值

如何使用带有 PHP 的 Azure 通知中心发送通知?