FlutterzipPlugin.m 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #import "FlutterzipPlugin.h"
  2. #if __has_include(<flutterzip/flutterzip-Swift.h>)
  3. #import <flutterzip/flutterzip-Swift.h>
  4. #else
  5. // Support project import fallback if the generated compatibility header
  6. // is not copied when this plugin is created as a library.
  7. // https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816
  8. #import "flutterzip-Swift.h"
  9. #endif
  10. #import "SSZipArchive/ZipArchive.h"
  11. @implementation FlutterzipPlugin
  12. + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
  13. // [SwiftFlutterzipPlugin registerWithRegistrar:registrar];
  14. FlutterMethodChannel* channel = [FlutterMethodChannel methodChannelWithName:@"flutterzip" binaryMessenger:[registrar messenger]];
  15. FlutterzipPlugin* instance = [[FlutterzipPlugin alloc] init];
  16. [registrar addMethodCallDelegate:instance channel:channel];
  17. }
  18. - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
  19. if ([@"getPlatformVersion" isEqualToString:call.method]) {
  20. result([@"iOS " stringByAppendingString:[[UIDevice currentDevice] systemVersion]]);
  21. } else if ([@"unpack" isEqualToString:call.method]){
  22. NSString *outPath = call.arguments[@"outPath"];
  23. NSString *unzipPath = call.arguments[@"unzipPath"];
  24. @try{
  25. BOOL success = [SSZipArchive unzipFileAtPath:unzipPath toDestination:outPath];
  26. if(success){
  27. result(@"ok");
  28. }
  29. }
  30. @catch(NSException *exception) {
  31. printf(@"SSZipArchive==NSException");
  32. }
  33. }
  34. }
  35. @end