我有WKWebView
,我想禁用/删除右键菜单:
我发现了类似的问题:
webview load custom context menu
Cocoa webView - Disable all interaction
但我找不到
optional func webView(_ sender: WebView!, contextMenuItemsForElement element: [AnyHashable : Any]!,
defaultMenuItems: [Any]!) -> [Any]!
WKUIDelegate
或WKNavigationDelegate
中的答案 0 :(得分:1)
你可以这样做,但不能从Swift / Objc那边做。
拦截' oncontextmenu'您的HTML代码上的事件,例如:
#include <IE.au3>
Local $oIE = _IECreate("https://google.com")
Local $oButtons = _IETagNameGetCollection($oIE, "button")
For $oButton In $oButtons
Consolewrite("name: " & $oButton.name & " value: " & $oButton.value & @CRLF)
Next
然后从javascript:
<body oncontextmenu='contextMenu(event)'>
我从以下文章中推断出这一点,解释了如何自定义此菜单:
How can the context menu in WKWebView on the Mac be modified or overridden?
此致
答案 1 :(得分:1)
我认为这是一种最优雅的方式:
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
[webView evaluateJavaScript:@"document.body.setAttribute('oncontextmenu', 'event.preventDefault();');" completionHandler:nil];
}
请记住,某些JavaScripts可以覆盖此行为
答案 2 :(得分:0)
myWKView.allowsBackForwardNavigationGestures = false