Невозможно воспроизвести музыку при получении LocalNotification, когда приложение находится в фоновом режиме в быстром - PullRequest
0 голосов
/ 14 октября 2019

Я планирую локальное уведомление как сигнал тревоги для приложения, где я настраиваю музыку и вибрацию при получении локального уведомления. Когда приложение находится в режиме переднего плана, все работает нормально, музыка играет, вибрация присутствует.

Но когда приложение находится в фоновом состоянии, только музыка уведомления по умолчанию, т.е. только один раз не повторяется, и происходит одиночная вибрация.

func application(_ application: UIApplication, didReceive notification: UILocalNotification) {

    //show an alert window
    var isSnooze: Bool = false
    var soundName: String = ""
    var index: Int = -1
    if let userInfo = notification.userInfo {
        isSnooze = userInfo["snooze"] as! Bool
        soundName = userInfo["soundName"] as! String
        index = userInfo["index"] as! Int
    }

    playSound(soundName)
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let mainVC = storyboard.instantiateViewController(withIdentifier: "HomeViewController") as? HomeViewController
            mainVC?.notification = notification
            mainVC?.isFromNotificationDelegate = true

    let nav = UINavigationController(rootViewController: mainVC!)
            self.window?.rootViewController = nav

}

1 Ответ

1 голос
/ 14 октября 2019

Зарегистрируйтесь для уведомлений в AppDellegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Sound | .Alert | .Badge, categories: nil))
    return true
}

Теперь, запланируйте ваше уведомление, используя следующую функцию, оно будет автоматически воспроизводить ваш собственный звук всякий раз, когда уведомление получит

func localnotification (firedate:NSDate)  {
    var localNotification:UILocalNotification = UILocalNotification()
    localNotification.fireDate = firedate
    localNotification.alertBody = "time to woke up"
    localNotification.soundName = "alarm.wav"

    UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...