Browse Source

升级Kingfisher 为6.3.0 'KingfisherWebP' 为 '1.3.0'

jsonwang 3 years ago
parent
commit
be62b9d0b5

+ 3 - 2
BFFramework.podspec

@@ -51,7 +51,8 @@ TODO: Add long description of the pod here.
 
 
     s.dependency 'Alamofire','4.9.1' # 网络请求库
     s.dependency 'Alamofire','4.9.1' # 网络请求库
     s.dependency 'SnapKit','4.2.0' # 布局库
     s.dependency 'SnapKit','4.2.0' # 布局库
-    s.dependency 'Kingfisher','4.10.1' # 图片加载库
+    s.dependency 'Kingfisher','6.3.0' # 图片加载库
+    s.dependency 'KingfisherWebP','1.3.0' # 加载WebP格式图片库
     s.dependency 'RealmSwift','10.7.2' # Realm数据库
     s.dependency 'RealmSwift','10.7.2' # Realm数据库
     s.dependency 'ObjectMapper','4.2.0' # json转model库
     s.dependency 'ObjectMapper','4.2.0' # json转model库
     s.dependency 'KeychainAccess','4.2.2' # 钥匙串库
     s.dependency 'KeychainAccess','4.2.2' # 钥匙串库
@@ -63,5 +64,5 @@ TODO: Add long description of the pod here.
     s.dependency 'LMJHorizontalScrollText' ,'2.0.2'
     s.dependency 'LMJHorizontalScrollText' ,'2.0.2'
     s.dependency 'TXLiteAVSDK_Player','8.4.9944' # 腾讯播放器组件
     s.dependency 'TXLiteAVSDK_Player','8.4.9944' # 腾讯播放器组件
     s.dependency "NXFramework-Swift"
     s.dependency "NXFramework-Swift"
-    s.dependency 'KingfisherWebP','0.4.2' # 加载WebP格式图片库 使用https://github.com/webmproject/libwebp.git地址可以不翻
+    #使用https://github.com/webmproject/libwebp.git地址可以不翻
 end
 end

+ 2 - 2
BFFramework/Classes/Base/ViewModel/PQDownloadFileManager.swift

@@ -32,8 +32,8 @@ class PQDownloadFileManager: NSObject {
             return url
             return url
         }
         }
         let type: String = fileExtensionType?.rawValue ?? url.pathExtension
         let type: String = fileExtensionType?.rawValue ?? url.pathExtension
-        BFLog(message: "localPath : \(downloadDirectory + url.kf.md5 + (type.count > 0 ? ".\(type)" : ""))")
-        return downloadDirectory + url.kf.md5 + (type.count > 0 ? ".\(type)" : "")
+        BFLog(message: "localPath : \(downloadDirectory + url.md5 + (type.count > 0 ? ".\(type)" : ""))")
+        return downloadDirectory + url.md5 + (type.count > 0 ? ".\(type)" : "")
     }
     }
 
 
     /// 获取已缓存大小
     /// 获取已缓存大小

+ 2 - 2
BFFramework/Classes/Base/ViewModel/PQDownloadManager.swift

@@ -42,7 +42,7 @@ class PQDownloadManager: NSObject {
             BFLog(message: "文件地址为空:\(url)")
             BFLog(message: "文件地址为空:\(url)")
             return
             return
         }
         }
-        let taskId = url.kf.md5
+        let taskId = url.md5
         let absolutePath = url + ".\(newFileExtensionType.rawValue)"
         let absolutePath = url + ".\(newFileExtensionType.rawValue)"
         let localPath = PQDownloadFileManager.downloadFileLocalPath(url: absolutePath, fileExtensionType: newFileExtensionType)
         let localPath = PQDownloadFileManager.downloadFileLocalPath(url: absolutePath, fileExtensionType: newFileExtensionType)
         let downloadLenght: Int64 = PQDownloadFileManager.downloadFileLength(url: absolutePath, fileExtensionType: newFileExtensionType)
         let downloadLenght: Int64 = PQDownloadFileManager.downloadFileLength(url: absolutePath, fileExtensionType: newFileExtensionType)
@@ -182,7 +182,7 @@ class PQDownloadManager: NSObject {
     class func downLoadFile(url: String, completionHandler: @escaping (_ filePath: String?, _ error: Error?) -> Void) {
     class func downLoadFile(url: String, completionHandler: @escaping (_ filePath: String?, _ error: Error?) -> Void) {
         // 创建目录
         // 创建目录
         createDirectory(path: bgMusicDirectory)
         createDirectory(path: bgMusicDirectory)
-        let filePath = bgMusicDirectory + url.kf.md5 + ".mp3"
+        let filePath = bgMusicDirectory + url.md5 + ".mp3"
         let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
         let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
         if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > 0 {
         if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > 0 {
             DispatchQueue.main.async {
             DispatchQueue.main.async {

+ 3 - 3
BFFramework/Classes/Categorys/UIView+Ext.swift

@@ -416,7 +416,7 @@ extension UIImageView {
         }
         }
         kf.setImage(with: URL(string: url!), placeholder: placeholder, options: url?.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
         kf.setImage(with: URL(string: url!), placeholder: placeholder, options: url?.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
 
 
-        }) { _, _, _, _ in
+        }) {  _ in
         }
         }
     }
     }
 
 
@@ -474,7 +474,7 @@ extension UIButton {
         }
         }
         kf.setImage(with: URL(string: url!), for: .normal, placeholder: placeholder, options: url?.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
         kf.setImage(with: URL(string: url!), for: .normal, placeholder: placeholder, options: url?.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
 
 
-        }) { _, _, _, _ in
+        }) { _ in
         }
         }
     }
     }
 
 
@@ -484,7 +484,7 @@ extension UIButton {
      public func setNetBackgroundImage(url: String, placeholder: UIImage = UIImage.init().BF_Image(named: "placehold_image")) {
      public func setNetBackgroundImage(url: String, placeholder: UIImage = UIImage.init().BF_Image(named: "placehold_image")) {
         kf.setBackgroundImage(with: URL(string: url), for: .normal, placeholder: placeholder, options: url.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
         kf.setBackgroundImage(with: URL(string: url), for: .normal, placeholder: placeholder, options: url.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
 
 
-        }) { _, _, _, _ in
+        }) { _ in
         }
         }
     }
     }
 }
 }

+ 1 - 1
BFFramework/Classes/PModels/editDarftModels/PQEditVisionTrackMaterialsModel.swift

@@ -248,7 +248,7 @@ class PQEditVisionTrackMaterialsModel: PQEditBaseModel {
                 }
                 }
                 if fileData != nil && (fileData?.count ?? 0) > 0 && fileData?.isWebPFormat ?? false {
                 if fileData != nil && (fileData?.count ?? 0) > 0 && fileData?.isWebPFormat ?? false {
                     BFLog(message: "这个资源为web!")
                     BFLog(message: "这个资源为web!")
-                    coverImage = WebPProcessor.default.process(item: ImageProcessItem.data(fileData!), options: [.onlyLoadFirstFrame, .scaleFactor(1)])
+                    coverImage = WebPProcessor.default.process(item: ImageProcessItem.data(fileData!), options: KingfisherParsedOptionsInfo([.onlyLoadFirstFrame, .scaleFactor(1)]))
                 }
                 }
             }
             }
 
 

+ 1 - 1
BFFramework/Classes/PQGPUImage/akfilters/PQImageFilter.swift

@@ -64,7 +64,7 @@ open class PQImageFilter: PQBaseFilter {
                     // 有可能是 WEBP
                     // 有可能是 WEBP
                     let fileData: Data = try! Data(contentsOf: URL(fileURLWithPath: filePath))
                     let fileData: Data = try! Data(contentsOf: URL(fileURLWithPath: filePath))
                     if fileData.count != 0, fileData.isWebPFormat {
                     if fileData.count != 0, fileData.isWebPFormat {
-                        newImage = WebPProcessor.default.process(item: ImageProcessItem.data(fileData), options: [.onlyLoadFirstFrame, .scaleFactor(1)])
+                        newImage = WebPProcessor.default.process(item: ImageProcessItem.data(fileData), options: KingfisherParsedOptionsInfo([.onlyLoadFirstFrame, .scaleFactor(1)]))
                     }
                     }
                 } else { FilterLog(message: "文件不存在") }
                 } else { FilterLog(message: "文件不存在") }
             }
             }

+ 33 - 32
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointMaterialDetailController.swift

@@ -228,7 +228,7 @@ class PQStuckPointMaterialDetailController: PQBaseViewController {
                     // 有可能是 WEBP
                     // 有可能是 WEBP
                     let fileData: Data = try! Data(contentsOf: URL(fileURLWithPath: documensDirectory + (materialData?.locationPath)!))
                     let fileData: Data = try! Data(contentsOf: URL(fileURLWithPath: documensDirectory + (materialData?.locationPath)!))
                     if fileData.count != 0, fileData.isWebPFormat {
                     if fileData.count != 0, fileData.isWebPFormat {
-                        coverImage = WebPProcessor.default.process(item: ImageProcessItem.data(fileData), options: [.onlyLoadFirstFrame, .scaleFactor(1)])
+                        coverImage = WebPProcessor.default.process(item: ImageProcessItem.data(fileData), options: KingfisherParsedOptionsInfo([.onlyLoadFirstFrame, .scaleFactor(1)]))
                     }
                     }
                 }
                 }
                 preImageView.image = coverImage
                 preImageView.image = coverImage
@@ -240,37 +240,38 @@ class PQStuckPointMaterialDetailController: PQBaseViewController {
             if url == nil || (url?.count ?? 0) <= 0 {
             if url == nil || (url?.count ?? 0) <= 0 {
                 url = materialData?.netResCoverImageURL
                 url = materialData?.netResCoverImageURL
             }
             }
-            ImageDownloader.default.downloadImage(with: URL(string: url ?? "")!, retrieveImageTask: nil, options: nil, progressBlock: nil) { [weak self] image, _, _, data in
-                if image == nil && data == nil {
-                    BFLog(message: "add by ak 素材有问题!!!!")
-                    return
-                }
-                self?.materialData?.originalData = data
-                self?.materialData?.coverImageUI = image
-                if self?.materialData?.type == StickerType.GIF.rawValue {
-                    self?.preImageView.displayGIF(data: data)
-                } else {
-                    self?.preImageView.image = image
-                }
-                let imageOrientation = UIImage.nx_fixOrientation(image, isFront: false).nx_scaleWithMaxLength(maxLength: 1024)
-                // 下载器的原地址
-                let diskCachePath = ImageCache.default.cachePath(forKey: url!)
-                let imageCacheName = url!.kf.md5
-                let imageCachePath = downloadImagesDirectory + imageCacheName
-                if !directoryIsExists(dicPath: downloadImagesDirectory) {
-                    BFLog(message: "文件夹不存在 \(downloadImagesDirectory)")
-                    createDirectory(path: downloadImagesDirectory)
-                }
-                if self?.materialData?.type != StickerType.GIF.rawValue {
-                    try! imageOrientation.pngData()?.write(to: URL(fileURLWithPath: imageCachePath))
-                } else {
-                    try! data?.write(to: URL(fileURLWithPath: imageCachePath))
-                }
-                if !FileManager.default.fileExists(atPath: imageCachePath) {
-                    try! FileManager.default.copyItem(atPath: diskCachePath, toPath: downloadImagesDirectory + imageCacheName)
-                }
-                if self?.materialData?.type != StickerType.VIDEO.rawValue {
-                    self?.materialData?.locationPath = imageCachePath.replacingOccurrences(of: documensDirectory, with: "")
+            ImageDownloader.default.downloadImage(with: URL(string: url ?? "")!, options: nil) { [weak self] result in
+                switch result {
+                case let .success(imageLoading):
+                    self?.materialData?.originalData = imageLoading.originalData
+                    self?.materialData?.coverImageUI = imageLoading.image
+                    if self?.materialData?.type == StickerType.GIF.rawValue {
+                        self?.preImageView.displayGIF(data: imageLoading.originalData)
+                    } else {
+                        self?.preImageView.image = imageLoading.image
+                    }
+                    let imageOrientation = UIImage.nx_fixOrientation(imageLoading.image, isFront: false).nx_scaleWithMaxLength(maxLength: 1024)
+                    // 下载器的原地址
+                    let diskCachePath = ImageCache.default.cachePath(forKey: url!)
+                    let imageCacheName = url!.md5
+                    let imageCachePath = downloadImagesDirectory + imageCacheName
+                    if !directoryIsExists(dicPath: downloadImagesDirectory) {
+                        BFLog(message: "文件夹不存在 \(downloadImagesDirectory)")
+                        createDirectory(path: downloadImagesDirectory)
+                    }
+                    if self?.materialData?.type != StickerType.GIF.rawValue {
+                        try! imageOrientation.pngData()?.write(to: URL(fileURLWithPath: imageCachePath))
+                    } else {
+                        try! imageLoading.originalData.write(to: URL(fileURLWithPath: imageCachePath))
+                    }
+                    if !FileManager.default.fileExists(atPath: imageCachePath) {
+                        try! FileManager.default.copyItem(atPath: diskCachePath, toPath: downloadImagesDirectory + imageCacheName)
+                    }
+                    if self?.materialData?.type != StickerType.VIDEO.rawValue {
+                        self?.materialData?.locationPath = imageCachePath.replacingOccurrences(of: documensDirectory, with: "")
+                    }
+                case let .failure(error):
+                    BFLog(message: "下载图片失败:\(error.localizedDescription)")
                 }
                 }
             }
             }
         }
         }

+ 15 - 5
BFFramework/Classes/Utils/PQCommonMethodUtil.swift

@@ -101,12 +101,12 @@ public func netImage(url: String, mainView: Any, placeholder: UIImage = UIImage.
     if mainView is UIImageView {
     if mainView is UIImageView {
         (mainView as! UIImageView).kf.setImage(with: URL(string: url), placeholder: placeholder, options: url.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
         (mainView as! UIImageView).kf.setImage(with: URL(string: url), placeholder: placeholder, options: url.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
 
 
-        }) { _, _, _, _ in
+        }) { _ in
         }
         }
     } else if mainView is UIButton {
     } else if mainView is UIButton {
         (mainView as! UIButton).kf.setImage(with: URL(string: url), for: .normal, placeholder: placeholder, options: url.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
         (mainView as! UIButton).kf.setImage(with: URL(string: url), for: .normal, placeholder: placeholder, options: url.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
 
 
-        }) { _, _, _, _ in
+        }) { _ in
         }
         }
     }
     }
 }
 }
@@ -119,8 +119,18 @@ public func kf_imageCacheData(originUrl: String) -> Data? {
 }
 }
 
 
 /** 获取Kingfisher缓存的图片 */
 /** 获取Kingfisher缓存的图片 */
-public func kf_imageCacheImage(originUrl: String) -> UIImage? {
-    return ImageCache.default.retrieveImageInDiskCache(forKey: originUrl, options: [.cacheOriginalImage])
+public func kf_imageCacheImage(originUrl: String, completeHandle: @escaping (_ image: UIImage?, _ error: Error?) -> Void) {
+   
+    ImageCache.default.retrieveImageInDiskCache(forKey: originUrl, options: [.cacheOriginalImage]) { result in
+        DispatchQueue.main.async {
+            switch result {
+            case let .success(image):
+                completeHandle(image, nil)
+            case let .failure(error):
+                completeHandle(nil, error)
+            }
+        }
+    }
 }
 }
 
 
 /** 打印 */
 /** 打印 */
@@ -239,7 +249,7 @@ public func getUniqueId(desc: String) -> String {
     let timeStr: String = "\(Date().timeIntervalSince1970)"
     let timeStr: String = "\(Date().timeIntervalSince1970)"
     let uuid: String = getMachineCode()
     let uuid: String = getMachineCode()
     let code: String = "\(arc4random_uniform(1_000_000_000))"
     let code: String = "\(arc4random_uniform(1_000_000_000))"
-    let uniqueId = (timeStr + desc + uuid + code).kf.md5.kf.md5
+    let uniqueId = (timeStr + desc + uuid + code).md5.md5
     BFLog(message: "生成唯一码:desc = \(desc),timeStr = \(timeStr),uuid = \(uuid),code = \(code),uniqueId = \(uniqueId)")
     BFLog(message: "生成唯一码:desc = \(desc),timeStr = \(timeStr),uuid = \(uuid),code = \(code),uniqueId = \(uniqueId)")
     return uniqueId
     return uniqueId
 }
 }

+ 7 - 7
BFFramework/Classes/Utils/PQPHAssetVideoParaseUtil.swift

@@ -116,7 +116,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
                 // 创建目录
                 // 创建目录
                 createDirectory(path: photoLibraryDirectory)
                 createDirectory(path: photoLibraryDirectory)
                 let fileName = (avAsset as! AVURLAsset).url.absoluteString
                 let fileName = (avAsset as! AVURLAsset).url.absoluteString
-                let filePath = photoLibraryDirectory + fileName.kf.md5.kf.md5 + ".mp4"
+                let filePath = photoLibraryDirectory + fileName.md5.md5 + ".mp4"
                 let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                 let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                 if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                 if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                     BFLog(message: "导出相册视频-已经导出完成:\(filePath)")
                     BFLog(message: "导出相册视频-已经导出完成:\(filePath)")
@@ -248,7 +248,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
                 }
                 }
                 if phAsset.mediaType == .video, resource != nil {
                 if phAsset.mediaType == .video, resource != nil {
                     let fileName = (resource?.originalFilename ?? "") + (resource?.assetLocalIdentifier ?? "") + (resource?.uniformTypeIdentifier ?? "")
                     let fileName = (resource?.originalFilename ?? "") + (resource?.assetLocalIdentifier ?? "") + (resource?.uniformTypeIdentifier ?? "")
-                    let filePath = photoLibraryDirectory + fileName.kf.md5 + ".mp4"
+                    let filePath = photoLibraryDirectory + fileName.md5 + ".mp4"
                     let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                     let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                     if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                     if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                         DispatchQueue.main.async {
                         DispatchQueue.main.async {
@@ -290,7 +290,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
                 // 创建目录
                 // 创建目录
                 createDirectory(path: photoLibraryDirectory)
                 createDirectory(path: photoLibraryDirectory)
                 let fileName = (avAsset as! AVURLAsset).url.absoluteString
                 let fileName = (avAsset as! AVURLAsset).url.absoluteString
-                let filePath = photoLibraryDirectory + fileName.kf.md5 + ".mp4"
+                let filePath = photoLibraryDirectory + fileName.md5 + ".mp4"
                 let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                 let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                 if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                 if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                     BFLog(message: "导出相册视频-已经导出完成:\(filePath)")
                     BFLog(message: "导出相册视频-已经导出完成:\(filePath)")
@@ -448,7 +448,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
                 }
                 }
                 if phAsset.mediaType == .video, resource != nil {
                 if phAsset.mediaType == .video, resource != nil {
                     let fileName = (resource?.originalFilename ?? "") + (resource?.assetLocalIdentifier ?? "") + (resource?.uniformTypeIdentifier ?? "")
                     let fileName = (resource?.originalFilename ?? "") + (resource?.assetLocalIdentifier ?? "") + (resource?.uniformTypeIdentifier ?? "")
-                    let filePath = photoLibraryDirectory + fileName.kf.md5 + ".mp4"
+                    let filePath = photoLibraryDirectory + fileName.md5 + ".mp4"
                     let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                     let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                     if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                     if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                         DispatchQueue.main.async {
                         DispatchQueue.main.async {
@@ -485,7 +485,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
         // 创建目录
         // 创建目录
         createDirectory(path: photoLibraryDirectory)
         createDirectory(path: photoLibraryDirectory)
         let fileName = aVAsset.url.absoluteString
         let fileName = aVAsset.url.absoluteString
-        let filePath = photoLibraryDirectory + fileName.kf.md5 + ".mp4"
+        let filePath = photoLibraryDirectory + fileName.md5 + ".mp4"
         let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
         let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
         let fileSize = try! aVAsset.url.resourceValues(forKeys: [.fileSizeKey]).fileSize ?? 0
         let fileSize = try! aVAsset.url.resourceValues(forKeys: [.fileSizeKey]).fileSize ?? 0
         if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
         if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
@@ -604,7 +604,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
     class func cutAudioToLocal(url: String, startTime: Float, endTime: Float, resultHandler: @escaping (_ url: String, _ filePath: String?, _ startTime: Float, _ endTime: Float, _ errorMsg: String?) -> Void) {
     class func cutAudioToLocal(url: String, startTime: Float, endTime: Float, resultHandler: @escaping (_ url: String, _ filePath: String?, _ startTime: Float, _ endTime: Float, _ errorMsg: String?) -> Void) {
         // 创建目录
         // 创建目录
         createDirectory(path: bgMusicDirectory)
         createDirectory(path: bgMusicDirectory)
-        let filePath = bgMusicDirectory + url.kf.md5 + ".mp3"
+        let filePath = bgMusicDirectory + url.md5 + ".mp3"
         let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
         let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
         if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > 0 {
         if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > 0 {
             DispatchQueue.main.async {
             DispatchQueue.main.async {
@@ -663,7 +663,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
     ///   - completeHandle: <#completeHandle description#>
     ///   - completeHandle: <#completeHandle description#>
     /// - Returns: <#description#>
     /// - Returns: <#description#>
     class func createLocalFile(sourceFilePath: String, completeHandle: (_ isFileExists: Bool, _ isCreateSuccess: Bool, _ filePath: String) -> Void) {
     class func createLocalFile(sourceFilePath: String, completeHandle: (_ isFileExists: Bool, _ isCreateSuccess: Bool, _ filePath: String) -> Void) {
-        let cLocalPath = NSString(string: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!).appendingPathComponent("\(sourceFilePath.kf.md5).mp4")
+        let cLocalPath = NSString(string: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!).appendingPathComponent("\(sourceFilePath.md5).mp4")
         if FileManager.default.fileExists(atPath: cLocalPath) {
         if FileManager.default.fileExists(atPath: cLocalPath) {
             BFLog(message: "文件已经存在:\(cLocalPath)")
             BFLog(message: "文件已经存在:\(cLocalPath)")
             completeHandle(true, false, cLocalPath)
             completeHandle(true, false, cLocalPath)

+ 3 - 3
BFFramework/Classes/Utils/PQSingletoSourcesFileUtil.swift

@@ -34,7 +34,7 @@ class PQSingletoSourcesFileUtil: NSObject {
         }
         }
         if object != nil, (object?.count ?? 0) > 0 {
         if object != nil, (object?.count ?? 0) > 0 {
             let oldData: NSDictionary = NSMutableDictionary(contentsOfFile: cPlistPath) ?? NSMutableDictionary()
             let oldData: NSDictionary = NSMutableDictionary(contentsOfFile: cPlistPath) ?? NSMutableDictionary()
-            oldData.setValue(object, forKey: key.kf.md5)
+            oldData.setValue(object, forKey: key.md5)
             let success: Bool = oldData.write(toFile: cPlistPath, atomically: true)
             let success: Bool = oldData.write(toFile: cPlistPath, atomically: true)
             if success {
             if success {
                 BFLog(message: "写入成功:\(oldData)")
                 BFLog(message: "写入成功:\(oldData)")
@@ -48,8 +48,8 @@ class PQSingletoSourcesFileUtil: NSObject {
 
 
     func readFile(isString: Bool, key: String) -> Any {
     func readFile(isString: Bool, key: String) -> Any {
         let oldData = NSDictionary(contentsOfFile: Bundle.main.path(forResource: "sourcesFile.plist", ofType: nil) ?? "")
         let oldData = NSDictionary(contentsOfFile: Bundle.main.path(forResource: "sourcesFile.plist", ofType: nil) ?? "")
-        BFLog(message: "oldData = \(oldData),key = \(key.kf.md5)")
-        let enStr = oldData?.object(forKey: key.kf.md5)
+        BFLog(message: "oldData = \(oldData),key = \(key.md5)")
+        let enStr = oldData?.object(forKey: key.md5)
         let desStr = DES3Util.decryptUseDES(enStr as? String, key: key)
         let desStr = DES3Util.decryptUseDES(enStr as? String, key: key)
         BFLog(message: "读取成功:\(desStr)")
         BFLog(message: "读取成功:\(desStr)")
         if isString {
         if isString {

+ 43 - 37
BFFramework/Classes/Utils/PQThirdPlatformUtil.swift

@@ -102,51 +102,57 @@ public class PQSingletoWXApiUtil: NSObject {
         let message = WXMediaMessage()
         let message = WXMediaMessage()
         message.title = title ?? ""
         message.title = title ?? ""
         message.description = description ?? ""
         message.description = description ?? ""
+ 
+        ImageDownloader.default.downloadImage(with: URL(string: imageUrl ?? "")!, options: nil) { result in
+            switch result {
+            case let .success(imageResult):
+                message.thumbData = zipImage(image: imageResult.image, size: 64)
+                if type == 1 || type == 3, scene == Int32(WXSceneSession.rawValue) {
+                    let wxMiniObject = WXMiniProgramObject()
+                    wxMiniObject.miniProgramType = PQENVUtil.shared.envMode == .ENVModeOnline ? .release : .test
+                    wxMiniObject.userName = shareWeappRawId ?? cShareWeappRawId
+                    var preParams: String = ""
+                    var page: String = ""
+                    var isRhythmVideo = 0
+                    if type == 3 {
+                        preParams = "package-point/show/show"
+                        page = "pages/post/post"
+                        isRhythmVideo = 1
+                    } else {
+                        preParams = "user-videos"
+                        page = "pages/category"
+                        isRhythmVideo = 0
+                    }
+                    var params = (preParams + "?id=\(videoId)&tp=share&rootPageSource=\(pageSource.rawValue)&shareDepth=1&rootLaunchShareId=\(shareId)&parentShareId=\(shareId)&shareId=\(shareId)&shareAppType=13&mid=\(getMachineCode())&su=\(BFLoginUserInfo.shared.uid)&isRhythmVideo=\(isRhythmVideo)").addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
+                    ["/", "=", "?", "&"].forEach { char in
+                        let custom = CharacterSet(charactersIn: char).inverted
+                        params = params?.addingPercentEncoding(withAllowedCharacters: custom) ?? ""
+                    }
+                    wxMiniObject.path = "\(page)?jumpPage=" + (params ?? "")
+                    wxMiniObject.webpageUrl = "https://piaoquan.yishihui.com/"
+                    wxMiniObject.hdImageData = message.thumbData
+                    message.mediaObject = wxMiniObject
 
 
-        ImageDownloader.default.downloadImage(with: URL(string: imageUrl ?? "")!, retrieveImageTask: nil, options: nil, progressBlock: nil) { image, _, _, _ in
-            message.thumbData = zipImage(image: image, size: 64)
-            if type == 1 || type == 3, scene == Int32(WXSceneSession.rawValue) {
-                let wxMiniObject = WXMiniProgramObject()
-                wxMiniObject.miniProgramType = PQENVUtil.shared.envMode == .ENVModeOnline ? .release : .test
-                wxMiniObject.userName = shareWeappRawId ?? cShareWeappRawId
-                var preParams: String = ""
-                var page: String = ""
-                var isRhythmVideo = 0
-                if type == 3 {
-                    preParams = "package-point/show/show"
-                    page = "pages/post/post"
-                    isRhythmVideo = 1
                 } else {
                 } else {
-                    preParams = "user-videos"
-                    page = "pages/category"
-                    isRhythmVideo = 0
+                    let webpageObject = WXWebpageObject()
+                    webpageObject.webpageUrl = path ?? ""
+                    message.mediaObject = webpageObject
                 }
                 }
-                var params = (preParams + "?id=\(videoId)&tp=share&rootPageSource=\(pageSource.rawValue)&shareDepth=1&rootLaunchShareId=\(shareId)&parentShareId=\(shareId)&shareId=\(shareId)&shareAppType=13&mid=\(getMachineCode())&su=\(BFLoginUserInfo.shared.uid)&isRhythmVideo=\(isRhythmVideo)").addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
-                ["/", "=", "?", "&"].forEach { char in
-                    let custom = CharacterSet(charactersIn: char).inverted
-                    params = params?.addingPercentEncoding(withAllowedCharacters: custom) ?? ""
-                }
-                wxMiniObject.path = "\(page)?jumpPage=" + (params ?? "")
-                wxMiniObject.webpageUrl = "https://piaoquan.yishihui.com/"
-                wxMiniObject.hdImageData = message.thumbData
-                message.mediaObject = wxMiniObject
-
-            } else {
-                let webpageObject = WXWebpageObject()
-                webpageObject.webpageUrl = path ?? ""
-                message.mediaObject = webpageObject
-            }
 
 
-            let req = SendMessageToWXReq()
-            req.message = message
-            req.scene = scene
-            WXApi.send(req) { [weak self] isSuccess in
-                if self?.wxApiUtilHander != nil {
-                    self?.wxApiUtilHander!(nil, isSuccess ? "分享成功~" : "分享失败了~")
+                let req = SendMessageToWXReq()
+                req.message = message
+                req.scene = scene
+                WXApi.send(req) { [weak self] isSuccess in
+                    if self?.wxApiUtilHander != nil {
+                        self?.wxApiUtilHander!(nil, isSuccess ? "分享成功~" : "分享失败了~")
+                    }
                 }
                 }
+            case let .failure(error):
+                BFLog(message: "下载图片失败:\(error.localizedDescription)")
             }
             }
         }
         }
         return .shared
         return .shared
+        return .shared
     }
     }
 
 
     /// 处理发起数据
     /// 处理发起数据

+ 10 - 10
Example/Podfile.lock

@@ -1,13 +1,13 @@
 PODS:
 PODS:
   - Alamofire (4.9.1)
   - Alamofire (4.9.1)
   - AliyunOSSiOS (2.10.8)
   - AliyunOSSiOS (2.10.8)
-  - BFFramework (0.1.0):
+  - BFFramework (0.1.1):
     - Alamofire (= 4.9.1)
     - Alamofire (= 4.9.1)
     - AliyunOSSiOS (= 2.10.8)
     - AliyunOSSiOS (= 2.10.8)
     - FDFullscreenPopGesture (= 1.1)
     - FDFullscreenPopGesture (= 1.1)
     - KeychainAccess (= 4.2.2)
     - KeychainAccess (= 4.2.2)
-    - Kingfisher (= 4.10.1)
-    - KingfisherWebP (= 0.4.2)
+    - Kingfisher (= 6.3.0)
+    - KingfisherWebP (= 1.3.0)
     - LMJHorizontalScrollText (= 2.0.2)
     - LMJHorizontalScrollText (= 2.0.2)
     - MJRefresh (= 3.5.0)
     - MJRefresh (= 3.5.0)
     - NXFramework-Swift
     - NXFramework-Swift
@@ -19,10 +19,10 @@ PODS:
     - WechatOpenSDK-Swift (= 1.8.7.1)
     - WechatOpenSDK-Swift (= 1.8.7.1)
   - FDFullscreenPopGesture (1.1)
   - FDFullscreenPopGesture (1.1)
   - KeychainAccess (4.2.2)
   - KeychainAccess (4.2.2)
-  - Kingfisher (4.10.1)
-  - KingfisherWebP (0.4.2):
-    - Kingfisher (~> 4.0)
-    - libwebp (>= 0.5.0)
+  - Kingfisher (6.3.0)
+  - KingfisherWebP (1.3.0):
+    - Kingfisher (~> 6.2)
+    - libwebp (>= 1.1.0)
   - libwebp (1.2.0):
   - libwebp (1.2.0):
     - libwebp/demux (= 1.2.0)
     - libwebp/demux (= 1.2.0)
     - libwebp/mux (= 1.2.0)
     - libwebp/mux (= 1.2.0)
@@ -76,11 +76,11 @@ EXTERNAL SOURCES:
 SPEC CHECKSUMS:
 SPEC CHECKSUMS:
   Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18
   Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18
   AliyunOSSiOS: 8db92936545593b9e5c66d680ef2ac0738946651
   AliyunOSSiOS: 8db92936545593b9e5c66d680ef2ac0738946651
-  BFFramework: bd015fa2caf171485a37a2ec05a39960a4180156
+  BFFramework: 86ed86fad296b3cdc7fce3fc342c91782fd885e4
   FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
   FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
   KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
   KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
-  Kingfisher: c148cd7b47ebde9989f6bc7c27dcaa79d81279a0
-  KingfisherWebP: 53632f3da248ccabd4999d775903d6ae0aaa7768
+  Kingfisher: 6c3df386db71d82c0817a429d2c9421a77396529
+  KingfisherWebP: dec17a5eb1af2658791bde1f93ae9a853678f826
   libwebp: e90b9c01d99205d03b6bb8f2c8c415e5a4ef66f0
   libwebp: e90b9c01d99205d03b6bb8f2c8c415e5a4ef66f0
   LMJHorizontalScrollText: ebc9b908db297f603c5b98c9b4e5f4582f5a14b8
   LMJHorizontalScrollText: ebc9b908db297f603c5b98c9b4e5f4582f5a14b8
   MJRefresh: 6afc955813966afb08305477dd7a0d9ad5e79a16
   MJRefresh: 6afc955813966afb08305477dd7a0d9ad5e79a16