Le cœur de l'application que je construis est qu'il envoie une notification push à l'utilisateur deux fois par semaine avec un numéro d'un site Web, à un moment précis deux fois par semaine (exemple du code Swift que j'utilise pour cela ci-dessous). J'ai fait quelques recherches sur l'exécution de l'arrière-plan, mais je pense que je ne serai pas capable de l'utiliser parce que c'est si limité (seulement pour l'emplacement, le temps limité, etc.). L'utilisation d'un serveur est une autre option. Je n'ai pas l'intention de faire de l'argent avec cette application, donc il doit être une option gratuite. C'est pourquoi je regardais Firebase. J'apprenais Swift maintenant, c'est le premier langage de programmation que j'apprends.Comment envoyer une notification push lorsque le contenu d'un site Web change
Est-ce que quelqu'un a une opinion sur la façon de s'y prendre?
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = URL(string: "https://store.nike.com/be/nl_nl/pd/air-vapormax-flyknit-hardloopschoen-heren/pid-11384993/pgid-12169774")!
let request = NSMutableURLRequest(url: url)
let task = URLSession.shared.dataTask(with: request as URLRequest) {
data, response, error in
var message = ""
if error != nil {
print(error)
} else {
if let unwrappedData = data {
let dataString = NSString(data: unwrappedData, encoding: String.Encoding.utf8.rawValue)
var stringSeperator = "exp-pdp-local-price js-pdpLocalPrice"
if let contentArray = dataString?.components(separatedBy: stringSeperator) {
if contentArray.count > 0 {
stringSeperator = "€"
let newContentArray = contentArray[1].components(separatedBy: stringSeperator)
if newContentArray.count > 0 {
message = newContentArray[0]
print(message)
}
}
}
}
}
if message == "" {
message = "The jackpot couldn't be found. Please try again."
}
DispatchQueue.main.sync(execute: {
//De text in het label van de weer app = message
//Gebruik 'self.' om naar de viewcontroller te verwijzen, want hier zit je in een closure en niet in de viewcontroller zelf.
})
}
task.resume()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Ce n'est certainement pas une tâche côté client. Sondage d'un autre site fréquemment que vous n'avez pas accès pour recevoir des changements sur ce site ASAP est une tâche qui devrait être effectuée sur le côté serveur. –
Merci pour votre contribution !! Quelle langue est nécessaire pour laisser le serveur faire ce que j'ai écrit dans le code Swift ci-dessus? Je cherchais dans les nouvelles 'Fonctions Cloud' pour Firebase. – Maxim
Pour savoir comment envoyer une notification push depuis Cloud Functions for Firebase, voir [cet exemple] (https://firebase.google.com/docs/functions/use-cases#notify_users_when_something_interesting_happens). Ensuite, pour apprendre à déclencher une fonction Cloud sur un planning, voir [ce blog] (https://firebase.googleblog.com/2017/03/how-to-schedule-cron-jobs-with-cloud.html) ou regardez [cette vidéo] (https://www.youtube.com/watch?v=CbE2PzvAMxA). –