Pracuję nad zaawansowanym powiadomieniem, które zostało wprowadzone w iOS10 i utknęło w przekazywaniu obrazów jako załączników do UNNotificationContentExtension
.Obraz z załącznika z Powiadomienia lokalnego nie jest wyświetlany w UNNotificationContentExtension
Oto mój ContentExtension:
class NotificationViewController: UIViewController, UNNotificationContentExtension {
@IBOutlet weak var attachmentImage: UIImageView!
func didReceive(_ notification: UNNotification) {
if let attachment = notification.request.content.attachments.first {
if attachment.url.startAccessingSecurityScopedResource() {
attachmentImage.image = UIImage(contentsOfFile: attachment.url.path)
attachment.url.stopAccessingSecurityScopedResource()
}
}
}
}
W samouczku Śledzę Advanced Notifications video from WWDC. Sprawdziłem - UIImage
jestem przypisanie do UIImageView:
- jest nie
nil
- jest właściwa
CGSize
(191x191) - attachment.url.path równa
/var/mobile/Library/SpringBoard/PushStore/Attachments/<bundle of app>/<...>.png
Oto jak wysyłać lokalne powiadomienia z aplikacji:
let content = UNMutableNotificationContent()
content.title = "Sample title"
content.body = "Sample body"
content.categoryIdentifier = "myNotificationCategory"
let attachement = try! UNNotificationAttachment(identifier: "image",
url: Bundle.main.url(forResource: "cat", withExtension: "png")!,
options: nil)
content.attachments = [ attachement ]
let request = UNNotificationRequest(identifier:requestIdentifier, content: content, trigger: nil)
UNUserNotificationCenter.current().delegate = self
UNUserNotificationCenter.current().add(request){(error) in
if (error != nil){
}
}
"cat.png" to po prostu sztuczny zasób dodany do proj.
Jak widać, zgłoszenie pokazuje pic, więc zakładam, że wyślę go poprawnie, ale w stanie rozszerzonym (w NotificationViewController
) nigdy nie uda się pokazując ten sam obraz.
Co robię źle? Dzięki!
Witam Nadal mam ten sam problem, który nie jest w stanie wyświetlić obrazu w stanie rozwiniętym. Czy możesz mi pomóc? Mój kod jest obiektywny c. –