如何在 iOS8 中将通知类型从 Banner 更改为 Alert?

How to change notification type from Banner to Alert in iOS8?

我正在尝试创建一个将本地通知作为警报而不是横幅发送的应用程序。但看起来横幅是默认设置,我找不到在我的代码中更改它的方法。我可以在应用程序通知设置上更改它并且它工作得很好,但我希望该配置是默认配置。

这是我用来请求用户允许发送通知的代码:

UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];

(顺便问一下,有人知道为什么我不能用这段代码设置图标徽章吗?)

这是我用来创建本地通知的代码:

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
        localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:segundosTotal];
        localNotification.alertBody = timer.nome;
        localNotification.soundName = @"Default-28-sec-192kbps.mp3";
        localNotification.timeZone = [NSTimeZone defaultTimeZone];
        [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

使用此代码,我获得了默认横幅通知,如何将其更改为警报通知?

我认为没有任何方法可以通过编程强制系统将您的通知显示为警报而不是横幅。查看 documentation for UILocalNotification and for UIUserNotificationSettings,我没有看到任何允许您指定您想要警报而不是横幅的内容。

用户可以为您的应用调整他们的通知设置 - 我会留给他们来决定他们希望如何接收通知。