У меня есть бот 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, то есть если я все еще хочу, чтобы бот работал локально на телефоне пользователя.