我有一个HQ Answer机器人,它是iOS应用程序的形式。基本上,我已经完成了整个机器人程序,并且在HQ Trivia websocket打开后便可以运行,但是我在最后一步上遇到了问题,即以推送通知的形式从机器人程序中向用户发送最佳答案,因为当游戏直播且漫游器正在运行时,他们将使用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()
}
}
总而言之,我正在寻找一种方法,该方法可以使bot在游戏直播时运行,而无需用户打开应用程序并使其处于前台,因为它们将位于HQ应用程序中。有什么办法可以通过本地通知来执行此操作,如果没有必要使用Firebase之类的程序来执行此操作,那就是如果我仍然希望该漫游器在用户的手机上本地运行,是否需要采取任何步骤。