iOS 10 удаленных уведомлений с картинками

Прежде всего, я новичок в Swift, у меня есть опыт работы с Objective C, но я в основном разработчик для Android.

На самом деле я занимаюсь разработкой приложения на Swift 3 и Xcode 8. Мне нужно добавить в это приложение новую многофункциональную систему push-уведомлений Apple.

Я был в состоянии добавить локальный богатый пример уведомления с фото, видео и гифками. Но мне нужно показать удаленные уведомления с фотографиями, размещенными на типичном интернет-сервере.

Для запуска локальных уведомлений я использую этот код:

@IBAction func launchPicNotification(sender: UIButton) {
    let content = UNMutableNotificationContent()
    content.title = "Title"
    content.body = "Body"
    content.sound = UNNotificationSound.default()

    let url = Bundle.main.url(forResource:"foto", withExtension: "jpg")

    let attachment = try? UNNotificationAttachment(identifier: "Notification",
                                                   url: url!,
                                                   options: [:])

    if let attachment = attachment {
        print("Yes")
        content.attachments.append(attachment)
    }else{
        print("No")
    }

    let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 10.0, repeats: false)
    let request = UNNotificationRequest(identifier:"identificador", content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request){(error) in

        if (error != nil){

            //handle here

        }

    }
}

Мне нужно загрузить удаленный файл JPG, как прикрепленное изображение. Кто-нибудь знает, как я могу загрузить удаленный файл вместо загрузки локальной картинки?

Спасибо

1 ответ

Решение

Я добавил расширение для UIImage, чтобы справиться с этим. Создав UIImage из загруженных данных, вы можете вызвать эту функцию, чтобы создать локальный URL.

extension UIImage {

func createLocalURL() -> URL? {

    guard let data = UIImagePNGRepresentation(self) else {
        print("Coule not get UIImagePNGRepresentation Data for photo")
        return nil
    }

    let localUrl = self.getDocumentsDirectory().appendingPathComponent("copy.png")

    do {
        try data.write(to: localUrl)
    } catch let error {
        print("Failed to write to URL")
        print(error)
    }
    return localUrl
}

}
Другие вопросы по тегам