CompdfkitFlutterPlugin.m 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #import "CompdfkitFlutterPlugin.h"
  2. #import "FLNativeView.h"
  3. #import <ComPDFKit/ComPDFKit.h>
  4. #import "CPDFViewController.h"
  5. @implementation CompdfkitFlutterPlugin
  6. + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
  7. FlutterMethodChannel* channel = [FlutterMethodChannel
  8. methodChannelWithName:@"com.compdfkit.flutter.plugin"
  9. binaryMessenger:[registrar messenger]];
  10. CompdfkitFlutterPlugin* instance = [[CompdfkitFlutterPlugin alloc] init];
  11. [registrar addMethodCallDelegate:instance channel:channel];
  12. }
  13. - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
  14. if ([@"sdk_version_code" isEqualToString:call.method]) {
  15. result([CPDFKit sharedInstance].versionString);
  16. } else if ([@"init_sdk" isEqualToString:call.method]) {
  17. NSDictionary *initInfo = (NSDictionary *)call.arguments;
  18. NSString *key = initInfo[@"key"] ?: @"";
  19. NSString *secret = initInfo[@"secret"] ?: @"";
  20. [CPDFKit setLicenseKey:key secret:secret];
  21. } else if ([@"sdk_build_tag" isEqualToString:call.method]) {
  22. result([@"iOS build tag:" stringByAppendingFormat:@"%ld", [CPDFKit sharedInstance].buildNumber]);
  23. } else if ([@"openDocument" isEqualToString:call.method]){
  24. NSString *path = (NSString *)call.arguments;
  25. UIViewController *tRootViewControl = [UIApplication sharedApplication].keyWindow.rootViewController;
  26. if ([tRootViewControl presentedViewController]) {
  27. tRootViewControl = [tRootViewControl presentedViewController];
  28. }
  29. CPDFViewController *pdfViewController = [[CPDFViewController alloc] initWithFilePath:path password:nil];
  30. UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:pdfViewController];
  31. navigationController.modalPresentationStyle = UIModalPresentationFullScreen;
  32. [tRootViewControl presentViewController:navigationController animated:YES completion:nil];
  33. } else if ([@"getTemporaryDirectory" isEqualToString:call.method]){
  34. result([self getTemporaryDirectory]);
  35. } else {
  36. result(FlutterMethodNotImplemented);
  37. }
  38. }
  39. - (NSString*)getTemporaryDirectory {
  40. NSArray* paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
  41. return paths.firstObject;
  42. }
  43. @end