SwiftFlutterzipPlugin.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import Flutter
  2. import UIKit
  3. //SSZipArchiveDelegate
  4. public class SwiftFlutterzipPlugin: NSObject, FlutterPlugin{
  5. var channell : FlutterMethodChannel?
  6. init(channell:FlutterMethodChannel) {
  7. self.channell = channell;
  8. }
  9. public static func register(with registrar: FlutterPluginRegistrar) {
  10. let channel = FlutterMethodChannel(name: "flutterzip", binaryMessenger: registrar.messenger())
  11. let instance = SwiftFlutterzipPlugin.init(channell:channel);
  12. registrar.addMethodCallDelegate(instance, channel: channel)
  13. }
  14. public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
  15. result("iOS " + UIDevice.current.systemVersion)
  16. if(call.method=="unpack"){
  17. let arguments = call.arguments as! Dictionary<String, AnyObject>
  18. let outPath = arguments["outPath"] as! String
  19. let unzipPath = arguments["unzipPath"] as! String
  20. // SSZipArchive.unzipFile(atPath: unzipPath, toDestination: outPath,delegate: self);
  21. // result("ok");
  22. }
  23. }
  24. public func zipArchiveProgressEvent(_ loaded: UInt64, total: UInt64) {
  25. // var someDict:[String:UInt64] = ["total":total, "percent":loaded]
  26. if(total==loaded){
  27. print("Progress==done");
  28. }
  29. //channell?.invokeMethod("process", arguments:someDict)
  30. }
  31. }