Created
December 5, 2018 12:21
-
-
Save yunustek/e180d2a30f1611095c790476419be14d to your computer and use it in GitHub Desktop.
DownloadImageFunc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// Bir görüntüyü indirmek ve bir bildirimde sunmak için bu işlevi kullanın | |
/// - Parametereler: | |
/// - url: Resmin url'i | |
/// - completion: Görüntüyü, sonuç olarak UNNotificationAttachment biçiminde döndür | |
private func downloadImageFrom(url: URL, with completionHandler: @escaping (UNNotificationAttachment?) -> Void) { | |
let task = URLSession.shared.downloadTask(with: url) { (downloadedUrl, response, error) in | |
// 1. Url yoksa nil gönder ve geri dön | |
guard let downloadedUrl = downloadedUrl else { | |
completionHandler(nil) | |
return | |
} | |
// 2. Kullanıcının temporary yolunu al | |
var urlPath = URL(fileURLWithPath: NSTemporaryDirectory()) | |
// 3. Url dosya tipini .jpg olarak belirle | |
// (Sistem, ilgili bildirim isteğini zamanlamadan önce ekli dosyaların içeriğini doğrular. | |
// Bozuk, geçersiz veya desteklenmeyen bir dosya türü varsa, bildirim medyasız iletilecektir.) | |
let uniqueURLEnding = ProcessInfo.processInfo.globallyUniqueString + ".jpg" | |
urlPath = urlPath.appendingPathComponent(uniqueURLEnding) | |
// 4. downloadedUrl'i yeni oluşturulan urlPath yoluna taşı | |
try? FileManager.default.moveItem(at: downloadedUrl, to: urlPath) | |
// 5. Eki almayı ve completionHandler'a iletmeyi dene | |
do { | |
let attachment = try UNNotificationAttachment(identifier: "picture", url: urlPath, options: nil) | |
completionHandler(attachment) | |
} | |
catch { | |
completionHandler(nil) | |
} | |
} | |
task.resume() | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment