2

我真正想要的是将通知警报样式更改为“警报”,但后来知道我们不能以编程方式做到这一点。

现在让我们来看情景,

UILocalNotification有一套repeatinterval = kCFCalendarUnitMinute。因此,如果我不取消它,它每分钟都会在通知窗口中显示新通知。

现在说,我让设备闲置了 10 分钟,然后我将被 10 条通知轰炸,尽管我设置了一个带有重复间隔的通知。

主要问题:有没有办法只显示最后一个通知。

就像我以同样的方式给出了 1 分钟的例子 以每 7 天重复的例子为例。取消通知也会取消下周即将到来的通知。

所有这 10 条通知中唯一的共同点是每次都有不同的值fireDatenextFireDate

因此,我想将警报样式切换为“警报”,但由于我们无法通过代码更改它。

我需要在每次启动时提醒用户将他的“通知警报样式”更改为“警报”,默认情况下是横幅,直到他更改它。

所以现在我有两个关于依赖的问题:

  1. 有没有办法通过编码检查当前的通知警报样式,即None, Banner, Alerts当前应用程序?
  2. 如果 1 是 YES,那么,有什么方法可以让用户直接从我们的应用程序直接进入设置通知警报样式屏幕。

注意: 对于第 2 点。

我想到的一件事是向用户显示到达那里的路径"Settings-> Notifications -> MyAlarmApp -> Alert Style -> Alerts"

欢迎任何其他建议。

4

2 回答 2

3

您不能以编程方式更改或检测通知的样式,只有用户在设置应用程序中更改它。

您也无法再打开设置应用程序,因此将由显示通知的用户决定。这完全不在你的控制范围内。

就像您所说的那样,您可以要求用户更改通知显示为您的应用程序的方式。

于 2012-10-24T09:15:57.037 回答
1

1.应用程序可以使用以下方法检查启用了哪些通知类型:

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

2.您现在不能直接以编程方式打开设置应用程序屏幕。

您可以在 iOS 版本 5.0 - 5.0.1 中使用它。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

但后来它在 iOS 5.1 中被贬值了。您不能将其用于 iOS 5.1 及更高版本。

于 2014-06-19T10:33:21.117 回答