Quicklook中是否提供PDF链接处理?
我创建了一个原型,并且QLPreviewControllerDelegate方法 - (BOOL)previewController:(QLPreviewController *)控制器shouldOpenURL:(NSURL *)url forPreviewItem:(id)item永远不会被调用。
当我使用带有链接的.docx文件时,委托方法会被触发。
此外,当我使用safari或UIWebView打开PDF时,链接处理工作正常。
我测试了几个不同的PDF,链接拦截从未奏效。
我确保My接口实现以下协议: QLPreviewControllerDataSource,QLPreviewControllerDelegate
我还确保将具有shouldOpenUrl方法的类指定为我的QlPreviewController实例的委托。
我猜测问题不在于我的代码,因为.docx链接拦截工作正常。
对我可能做错了什么的想法?
Quicklook是否支持PDF链接拦截?
我还注意到,当我在iOS邮件中打开PDF时,它使用Quicklook,PDf链接也不能在那里工作。
答案 0 :(得分:2)
为那些在这里寻找相同答案的人回答我自己的问题。 Quicklook不支持链接处理。如果需要处理PDF文档中的链接,则必须使用CATiledLayer来呈现PDF。
答案 1 :(得分:0)
您可以通过QLPreviewControllerDelegate
/*
* @abstract Invoked by the preview controller before trying to open an URL tapped in the preview.
* @result Returns NO to prevent the preview controller from calling -[UIApplication openURL:] on url.
* @discussion If not implemented, defaults is YES.
*/
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item;
返回YES
会打开该文档,如果是外部网址,则会自动启动Safari。
注意,您可能希望显示UIAlertView以询问用户是否要退出应用以打开Safari。