我想禁用WebView的上下文菜单“Reload”,“Open Link”,“在新窗口中打开链接”,“下载链接”等。 我已经尝试了很长时间,这个方法使用了contextMenuItemsForElement,但不管我怎么尝试都不行 我真的很难过,我希望有人可以帮助我,我会非常感激。
以下是我的代码:
@class WebView;
@interface UIWebView (Client)
- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItem;
@end
@implementation UIWebView (Client)
- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element
defaultMenuItems:(NSArray *)defaultMenuItems
{
NSLog(@"contextMenuItemsForElement");
return nil;
}
@end
为什么不工作?
答案 0 :(得分:4)
我认为iPhone SDK中不提供webView:contextMenuItemsForElements:
(或至少是公开的)。
如果您可以控制html / css代码,则可以将此规则放在css中
a {
-webkit-touch-callout: none !important;
}
如果不可能,请尝试
[yourWebView stringByEvaluatingJavascriptFromString:@"var a = document.getElementsByTagName('a'); for (var i = 0; i < a.length; i++) { a.style.WebkitTouchCallout = 'none'; }"];
在webViewDidFinishLoad:
方法中。