【问题标题】:show alert while app is in background swift应用程序在后台快速显示警报
【发布时间】:2015-01-02 23:21:28
【问题描述】:

我有一种“警报应用”,当某个计时器达到零时,它应该会给用户一个声音。 仅出于测试目的,我实现了通知,因为我不知道如何在应用程序处于后台时显示警报控制器。 此外,通知工作得很好,但在模拟中它给了我我选择的警报声音,而在我的 iPhone 中它使用我的通知设置的标准铃声。 总之,我有两个问题: 1. 是否可以在应用程序处于后台时显示警报控制器 2.当通知发生时我有两种不同的声音。我将通知实现如下

AppDelegatedidFinishLaunchingWithOptions 方法中

    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 的方法

【问题讨论】:

    标签: ios swift notifications uialertcontroller


    【解决方案1】:

    当您的应用在后台时,您无法运行任意代码。

    如果您应用的功能属于 Apple 定义的例外情况之一(例如播放音乐或提供 GPS 导航),则可以使用 API 继续在后台执行该任务。这似乎不适用于您的情况。

    就声音而言,请参阅“调度本地通知”in this documentation 下的第 4 点。 简短的回答是您应该能够使用 soundName 属性来提供自定义声音。

    【讨论】:

    • 所以当我的应用程序在后台时无法显示 AlertController。我会看看那个链接。谢谢
    • 效果惊人:只需编写 localNotification.soundName = "sound.wav" 感谢您的提示,我没有找到该链接!
    • sapi 你认为可以重复声音直到用户滚动徽章吗?开发者指南中似乎不可能...
    • @Nicholas 我认为不可能重复声音。您在很大程度上受到本地通知 API 的限制,据我所知,它不支持这一点。
    • 苹果文档的链接已损坏
    猜你喜欢
    • 2016-08-08
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多