1

1、新建一个类WxImageDownloader.swift

2、在类中实现代码:

import UIKit
import WeexSDK
import Kingfisher

class WXImageOperation: NSObject, WXImageOperationProtocol {
    var task: RetrieveImageDownloadTask?
    init(task: RetrieveImageDownloadTask?) {
        self.task = task
    }
    
    func cancel() {
        task?.cancel()
    }
}

class WxImageDownloader: NSObject, WXImgLoaderProtocol {
    
    func downloadImage(withURL url: String!, imageFrame: CGRect, userInfo options: [AnyHashable : Any]! = [:], completed completedBlock: ((UIImage?, Error?, Bool) -> Void)!) -> WXImageOperationProtocol! {
        return WXImageOperation.init(task: ImageDownloader.default.downloadImage(with: URL.init(string: url)!, completionHandler: { (image, error, url, data) in
            completedBlock?(image, error, data != nil ? true : false)
        }))
    }
}

3、在AppDelegate注册handler:

    WXSDKEngine.registerHandler(WxImageDownloader(), with: WXImgLoaderProtocol.self)

Ethan周周
15 声望1 粉丝

此人有BUG!