Skip to content

Commit

Permalink
Fix #5716: Show previews for the context menu on iOS 13 (#5737)
Browse files Browse the repository at this point in the history
  • Loading branch information
q2r5 authored and garvankeeley committed Nov 12, 2019
1 parent 3bdee63 commit c829026
Showing 1 changed file with 15 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,21 @@ extension BrowserViewController: WKUIDelegate {

@available(iOS 13.0, *)
func webView(_ webView: WKWebView, contextMenuConfigurationForElement elementInfo: WKContextMenuElementInfo, completionHandler: @escaping (UIContextMenuConfiguration?) -> Void) {
completionHandler(UIContextMenuConfiguration(identifier: nil, previewProvider: nil, actionProvider: { (suggested) -> UIMenu? in
completionHandler(UIContextMenuConfiguration(identifier: nil, previewProvider: {
guard let url = elementInfo.linkURL else { return nil }
let previewViewController = UIViewController()
previewViewController.view.isUserInteractionEnabled = false
let clonedWebView = WKWebView(frame: webView.frame, configuration: webView.configuration)

previewViewController.view.addSubview(clonedWebView)
clonedWebView.snp.makeConstraints { make in
make.edges.equalTo(previewViewController.view)
}

clonedWebView.load(URLRequest(url: url))

return previewViewController
}, actionProvider: { (suggested) -> UIMenu? in
guard let url = elementInfo.linkURL, let currentTab = self.tabManager.selectedTab,
let contextHelper = currentTab.getContentScript(name: ContextMenuHelper.name()) as? ContextMenuHelper,
let elements = contextHelper.elements else { return nil }
Expand Down

0 comments on commit c829026

Please sign in to comment.