ios显示PDF电子签章

      先来描述一下我遇到的问题,前段时间公司换了电子合同,把原来的文本合同改成了PDF。一开始以为ios只需要改一下Url地址就可以了,然后还是用UIWebView加载一下就可以,万万没想到h5给的url加载不出来,Url用手机和Mac的Safari都能打开而且带签章,心想什么鬼啊~~之前也遇到过加载通过h5处理后的PDF的Url打不开,解决办法是直接用UIWebView直接加载PDF的文件路径。这次加载不了我也直接问后台要了PDF的文件路径然后放在UIWebView加载,问题不大,直接就加载出来了。但是!wtf!电子签章没有显示出来。后来又尝试直接接受字节流加载也是显示不出来,然后一番Google~原来问题可以用QLPreviewController加载出来!!废话不多说,直接上代码,超级简单。

QLPreviewControllerDataSource,QLPreviewControllerDelegate  导入两个协议

@property (strong, nonatomic)QLPreviewController *previewController;

@property (copy, nonatomic)NSURL *fileURL;

//1.创建

    _previewController = [[QLPreviewController alloc] init];

    //2.设置代理

    _previewController.dataSource = self;

    _previewController.delegate = self;

  [self presentViewController:self.previewController animated:YES completion:nil];

//刷新界面,如果不刷新的话,不重新走一遍代理方法,返回的url还是上一次的url

[self.previewController refreshCurrentPreviewItem];


//2.实现代理QLPreviewControllerDelegate

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller{

 //返回当前预览文件的个数 return 1; 

 }

- (id)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index{

    //    NSURL *url = [NSURL fileURLWithPath:@"https://www.tutorialspoint.com/ios/ios_tutorial.pdf"];

    //返回每一个要预览的文件的地址 return url;

    return self.fileURL;

}


你可能感兴趣的:(ios显示PDF电子签章)