#import "CompdfkitFlutterPlugin.h" #import "FLNativeView.h" #import #import "CPDFViewController.h" @implementation CompdfkitFlutterPlugin + (void)registerWithRegistrar:(NSObject*)registrar { FlutterMethodChannel* channel = [FlutterMethodChannel methodChannelWithName:@"com.compdfkit.flutter.plugin" binaryMessenger:[registrar messenger]]; CompdfkitFlutterPlugin* instance = [[CompdfkitFlutterPlugin alloc] init]; [registrar addMethodCallDelegate:instance channel:channel]; } - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { if ([@"sdk_version_code" isEqualToString:call.method]) { result([CPDFKit sharedInstance].versionString); } else if ([@"init_sdk" isEqualToString:call.method]) { NSDictionary *initInfo = (NSDictionary *)call.arguments; NSString *key = initInfo[@"key"] ?: @""; NSString *secret = initInfo[@"secret"] ?: @""; [CPDFKit setLicenseKey:key secret:secret]; } else if ([@"sdk_build_tag" isEqualToString:call.method]) { result([@"iOS build tag:" stringByAppendingFormat:@"%ld", [CPDFKit sharedInstance].buildNumber]); } else if ([@"openDocument" isEqualToString:call.method]){ NSString *path = (NSString *)call.arguments; UIViewController *tRootViewControl = [UIApplication sharedApplication].keyWindow.rootViewController; if ([tRootViewControl presentedViewController]) { tRootViewControl = [tRootViewControl presentedViewController]; } CPDFViewController *pdfViewController = [[CPDFViewController alloc] initWithFilePath:path password:nil]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:pdfViewController]; navigationController.modalPresentationStyle = UIModalPresentationFullScreen; [tRootViewControl presentViewController:navigationController animated:YES completion:nil]; } else if ([@"getTemporaryDirectory" isEqualToString:call.method]){ result([self getTemporaryDirectory]); } else { result(FlutterMethodNotImplemented); } } - (NSString*)getTemporaryDirectory { NSArray* paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); return paths.firstObject; } @end