Ich versuche, eine neue Benachrichtigungsinhaltserweiterung in iOS 10 für lokale Benachrichtigungen zu erstellen, wo der für die Inhaltserweiterung verantwortliche Benachrichtigungs-Controller ein Bild aus dem Netzwerk herunterlädt und es in einem UIImageView rendert. Ich habe die Benachrichtigung Inhalt Erweiterungsziel mit einem geeigneten Info.plist und der Inhalts Erweiterung funktioniert wunderbar für einfache Dinge wie Rendering ein Etikett mit einem gewissen Inhalt, zum Beispiel des Beispielcode einrichten, die in der Vorlage kommt:iOS 10 Benachrichtigung Inhalt Erweiterung: mit NSURLSession?
func didReceive(_ notification: UNNotification) {
self.label.text = notification.request.content.body
}
Allerdings, wenn ich versuche NSURLSession (oder URLSession in Swift 3) in die Mischung einzuführen, schlägt die Benachrichtigung Inhalt vollständig zu laden - nicht einmal das Etikett mehr gesetzt wird:
func didReceive(_ notification: UNNotification) {
self.label.text = notification.request.content.body
let session = URLSession.shared()
let url = URL(string: "https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World")!
let task = session.downloadTask(with: url) { (fileURL, response, error) in
if let path = fileURL?.path {
DispatchQueue.main.async {
self.imageView.image = UIImage(contentsOfFile:path)
}
}
}
task.resume()
}
ist die Verwendung von NSURLSession in der Mitteilung Inhaltsverlängerung nicht erlaubt? Wird meine Erweiterung möglicherweise vor dem Abschluss des Downloads beendet? Wenn ja, wie kann ich sicherstellen, dass es nicht getötet wird, damit ich das Bild herunterladen und rendern kann?
Ich habe das gleiche Problem, Ändern der Transport-App-Sicherheit tut nichts, keine relevanten Protokolle entweder, und ich habe keine Dokumentation gesehen darüber bis jetzt zu sprechen ... –