Удаленные уведомления 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 в виде прикрепленного изображения. Кто-нибудь знает, как я могу загрузить удаленный файл вместо загрузки локального изображения?

Спасибо


person gabicuesta    schedule 10.10.2016    source источник
comment
как насчет let url = URL(string: "https://.....jpg")? или URL-адрес должен указывать на локальный файл. если это так, я думаю, вам нужно сначала загрузить файл   -  person jbe    schedule 10.10.2016
comment
Я пробовал, может быть, мне нужно сначала загрузить его, как вы мне сказали. Можете ли вы порекомендовать мне хороший учебник для загрузки фотографий на Swift 3? Спасибо.   -  person gabicuesta    schedule 11.10.2016
comment
@gabicuesta вам нужно сначала загрузить файл, а затем показывать изображение в уведомлении ..   -  person EI Captain v2.0    schedule 19.10.2016


Ответы (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
}

}
person Copernicus    schedule 16.01.2017