我有一种'闹钟应用',当某个定时器达到零时,它应该给用户一个声音。 仅出于测试目的,我实现了通知,因为我不知道如何在应用程序处于后台时显示警报控制器。 此外,通知工作得很好但在模拟中它给了我选择的警报声,而在我的iphone中它使用我的通知设置的标准铃声。 总结我有两个问题: 1.当应用程序处于后台时,是否可以显示警报控制器 2.当发出通知时,我有两种不同的声音。我将通知实现为以下
AppDelegate
方法中的didFinishLaunchingWithOptions
let notificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert | UIUserNotificationType.Sound | UIUserNotificationType.Badge, categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
applicationWillResignActive
中的
NSNotificationCenter.defaultCenter().postNotificationName("scheduleNotifications", object: self)
其中scheduleNotifications
被实现为我的ViewController的方法
答案 0 :(得分:1)
当您的应用在后台时,无法运行任意代码。
如果您的应用程序的功能属于Apple定义的例外之一(例如播放音乐或提供GPS导航),则可以使用API继续在后台执行该任务。这似乎不适用于您的情况。
就声音而言,请参阅“安排本地通知”in this documentation下的第4点。
简短的回答是,您应该能够使用soundName
属性来提供自定义声音。