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

问题描述 投票:0回答:2

我正在使用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的执行?

swift ios11 pdfkit
2个回答
1
投票

最后,我为自己想出了;)我忽略了PDFViewDelegate的一个功能

通过将pdfView的委托设置为涉及的ViewController并使用此功能

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

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


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

© www.soinside.com 2019 - 2024. All rights reserved.