Показывать локальные уведомления, когда приложение убито или в фоновом режиме - PullRequest
0 голосов
/ 28 июня 2018

У меня есть бот HQ Answer в форме приложения для iOS. По сути, у меня завершен весь бот, и он запускается после открытия веб-сокета HQ Trivia, однако у меня возникают проблемы с последним шагом, а именно с отправкой лучшего ответа от бота пользователю в форме push-уведомления, поскольку они будут использовать приложение HQ, когда игра активна и бот запущен. В моем viewDidLoad у меня есть следующий код:

override func viewDidLoad() {
    super.viewDidLoad()

    getSocketURL()

    let notificationCenter = NotificationCenter.default
    notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: Notification.Name.UIApplicationWillResignActive, object: nil)

}

getSocketURL () проверяет, запущена ли игра и запускает ли бот, но я хочу, чтобы это работало, когда пользователь убил приложение или оно находится в фоновом режиме.

Наконец, вот где уведомление должно отправляться локально, когда бот находит правильный ответ:

private func getMatches()
{
    let options = [answer1, answer2, answer3]
    AnswerController.answer(for: question, answers: options) { answer in

        print("Predicted correct answer: \(answer.correctAnswer)")
        print("-----")

        self.bestAnswer = answer.correctAnswer

        self.sendNotification(question: self.question, answer: "Best Answer: \(self.bestAnswer)") // Send the user a notification

        self.updateLabels()
    }
}

Подводя итог, я ищу способ, позволяющий боту запускаться всякий раз, когда игра активна, когда у пользователя нет открытого приложения и на переднем плане, поскольку они будут в приложении HQ. Есть ли способ сделать это с локальными уведомлениями, и если нет, какие шаги я должен предпринять, чтобы сделать что-то подобное, используя что-то вроде Firebase, то есть если я все еще хочу, чтобы бот работал локально на телефоне пользователя.

...