How can I edit the right click function to call a specific function, maybe like an add tab function inside of a custom web view.
Here is the code that I tried so far:
struct WKWebViewRepresentable: UIViewRepresentable {
let url: URL
func makeUIView(context: Context) -> WKWebView {
let webView = WKWebView()
webView.navigationDelegate = context.coordinator
return webView
}
func updateUIView(_ uiView: WKWebView, context: Context) {
let request = URLRequest(url: url)
uiView.load(request)
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
}
class Coordinator: NSObject, WKNavigationDelegate {
let parent: WKWebViewRepresentable
init(_ parent: WKWebViewRepresentable) {
self.parent = parent
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if navigationAction.targetFrame == nil {
// New tab request detected, print message and cancel navigation
print("New tab request detected")
decisionHandler(.cancel)
} else {
decisionHandler(.allow)
}
}
}
When I right click a link, then it still opens in Safari, so I don’t really know what I am doing wrong here.
New contributor
mustang81 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.