使用PDFKit-iOS 11点击Annotation后触发In-App-Browser

时间:2018-02-28 16:21:30

标签: swift ios11 pdfkit

我正在使用Apple的PDFKit开发应用程序,并设法将一些注释按钮添加到工作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的执行?

2 个答案:

答案 0 :(得分:1)

最后,我自己想出来了;)我忽略了PDFViewDelegate

的一个功能

通过将pdfView的委托设置为所涉及的ViewController并使用此函数

func pdfViewWillClick(onLink sender: PDFView, with url: URL) {
        print(url)
}

您可以使用PDFActionButton的关联URL并触发应用内浏览器(例如SFViewController)。

答案 1 :(得分:0)

您希望像这样实例化视图:

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的详细信息。