Как отключить контекстное меню WebView? - PullRequest
1 голос
/ 07 апреля 2011

Я хочу отключить контекстное меню WebView «Перезагрузить», «Открыть ссылку», «Открыть ссылку в новом окне», «Ссылка для скачивания» и т. Д. Я очень долго пытался, этот метод с 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

Почему не работают?

1 Ответ

4 голосов
/ 07 апреля 2011

Я не думаю, что webView:contextMenuItemsForElements: доступно в iPhone SDK (или, по крайней мере, публично).

Если вы контролируете код 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:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...