我正在使用Apple的PDFKit开发应用程序,并设法将一些Annotation-Buttons与一个正在运行的PDFActionURL
放在一起,在点击它们之后打开iOS标准浏览器。
不幸的是,我没有找到有效的解决方案,如何在应用内浏览器中打开相关链接或在webview中加载它。点击AnnotationButton后,PDFKit自动打开Safari,我还没有找到一个关于iOS的属性或其他方式来通过操作f.e来影响这种行为。 PDFAction。
let urlString = "https://www.apple.com"
let urlAction = PDFActionURL(url: urlString)
urlButton.action = urlAction
pdfPage.addAnnotation(urlButton)
有没有办法强制在每个UIApplication.shared.open()
调用应用内浏览器或操纵PDFAction
的执行?
最后,我为自己想出了;)我忽略了PDFViewDelegate的一个功能
通过将pdfView的委托设置为涉及的ViewController并使用此功能
func pdfViewWillClick(onLink sender: PDFView, with url: URL) {
print(url)
}
您可以使用PDFActionButton的关联URL并触发应用内浏览器(例如SFViewController)。
您想要像这样实例化视图:
let webV:UIWebView = UIWebView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
webV.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.google.co.in")))
webV.delegate = self;
self.view.addSubview(webV)
找到HERE
为了做到这一点,我会在你的故事板中创建一个新的ViewController
,嵌套在navigationController
中,并且在注释选择的视图中。使用与上面类似的一组代码在viewDidLoad
上显示您的内容。该代码可能是旧版本的swift,因此您需要更新它。有关使用提供的链接中关联的delegate
的更多详细信息。