123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- //
- // ViewController.h
- // PDFView_RN
- //
- // Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
- //
- // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- // This notice may not be removed from this file.
- //
- #import "OpenPDFModule.h"
- #import "CPDFViewController.h"
- @interface OpenPDFModule ()<CPDFViewBaseControllerDelete>
- @end
- @implementation OpenPDFModule
- RCT_EXPORT_MODULE();
- RCT_EXPORT_METHOD(openPDF) {
- dispatch_async(dispatch_get_main_queue(), ^{
- NSString *documentPath = [[NSBundle mainBundle] pathForResource:@"developer_guide_ios" ofType:@"pdf"];
- UIViewController *rootNav = [OpenPDFModule presentedViewController];
-
- CPDFConfiguration *configuration = [[CPDFConfiguration alloc] init];
-
- CNavBarButtonItem *thumbnail = [[CNavBarButtonItem alloc]initWithViewLeftBarButtonItem:CPDFViewBarLeftButtonItem_Thumbnail];
-
- CNavBarButtonItem *back = [[CNavBarButtonItem alloc]initWithViewLeftBarButtonItem:CPDFViewBarLeftButtonItem_Back];
-
- CNavBarButtonItem *search = [[CNavBarButtonItem alloc]initWithViewRightBarButtonItem:CPDFViewBarRightButtonItem_Search];
- CNavBarButtonItem *bota = [[CNavBarButtonItem alloc]initWithViewRightBarButtonItem:CPDFViewBarRightButtonItem_Bota];
- CNavBarButtonItem *more = [[CNavBarButtonItem alloc]initWithViewRightBarButtonItem:CPDFViewBarRightButtonItem_More];
-
- configuration.showleftItems = @[back,thumbnail];
- configuration.showRightItems = @[search,bota,more];
-
- CPDFViewController *pdfViewController = [[CPDFViewController alloc] initWithFilePath:documentPath password:nil configuration:configuration];
- pdfViewController.delegate = self;
- CNavigationController *nav = [[CNavigationController alloc]initWithRootViewController:pdfViewController];
- nav.modalPresentationStyle = UIModalPresentationFullScreen;
- [rootNav presentViewController:nav animated:YES completion:nil];
- });
- }
- RCT_EXPORT_METHOD(openPDFByPath:(nonnull NSString *)filePath) {
- dispatch_async(dispatch_get_main_queue(), ^{
- UIViewController *rootNav = [OpenPDFModule presentedViewController];
- CPDFConfiguration *configuration = [[CPDFConfiguration alloc] init];
-
- CNavBarButtonItem *thumbnail = [[CNavBarButtonItem alloc]initWithViewLeftBarButtonItem:CPDFViewBarLeftButtonItem_Thumbnail];
-
- CNavBarButtonItem *back = [[CNavBarButtonItem alloc]initWithViewLeftBarButtonItem:CPDFViewBarLeftButtonItem_Back];
-
- CNavBarButtonItem *search = [[CNavBarButtonItem alloc]initWithViewRightBarButtonItem:CPDFViewBarRightButtonItem_Search];
- CNavBarButtonItem *bota = [[CNavBarButtonItem alloc]initWithViewRightBarButtonItem:CPDFViewBarRightButtonItem_Bota];
- CNavBarButtonItem *more = [[CNavBarButtonItem alloc]initWithViewRightBarButtonItem:CPDFViewBarRightButtonItem_More];
-
- configuration.showleftItems = @[back,thumbnail];
- configuration.showRightItems = @[search,bota,more];
-
- CPDFViewController *pdfViewController = [[CPDFViewController alloc] initWithFilePath:filePath password:nil configuration:configuration];
- pdfViewController.delegate = self;
- CNavigationController *nav = [[CNavigationController alloc]initWithRootViewController:pdfViewController];
- nav.modalPresentationStyle = UIModalPresentationFullScreen;
- [rootNav presentViewController:nav animated:YES completion:nil];
- });
-
- }
- -(void)PDFViewBaseControllerDissmiss:(CPDFViewBaseController *)baseControllerDelete {
- [baseControllerDelete dismissViewControllerAnimated:YES completion:nil];
- }
- + (UIViewController*)presentedViewController {
- //get root view controller
- UIViewController *rootViewController = nil;
- id appDelegate = [[UIApplication sharedApplication] delegate];
- if ([appDelegate respondsToSelector:NSSelectorFromString(@"viewController")])
- {
- rootViewController = [appDelegate valueForKey:@"viewController"];
- }
- if (!rootViewController && [appDelegate respondsToSelector:@selector(window)])
- {
- UIWindow *window = [appDelegate valueForKey:@"window"];
- rootViewController = window.rootViewController;
- }
- if (!rootViewController)
- {
- UIWindow *window = [UIApplication sharedApplication].keyWindow;
- rootViewController = window.rootViewController;
- }
- if (!rootViewController)
- {
- return nil;
- }
- else
- {
- while (rootViewController.presentedViewController)
- {
- if (![rootViewController.presentedViewController isKindOfClass:[UIAlertController class]] &&
- rootViewController.modalPresentationStyle != UIModalPresentationPopover) {
- rootViewController = rootViewController.presentedViewController;
- } else {
- return rootViewController;
- }
- }
- }
-
- return rootViewController;
- }
- @end
|