UIWebView - Как отключить листы действий (UIActionSheet)? - PullRequest
6 голосов
/ 11 мая 2010

Я хотел бы знать, как можно отключить UIActionSheets, в частности, листы действий, отображаемые после нажатия и удержания гиперссылок в UIWebView. По-видимому, они включены по умолчанию в UIWebView, содержащих адрес ссылки соответствующей ссылки в заголовке предупреждения. Они также включены в Safari.

(Как) можно ли отключить все листы действий такого рода в UIWebView?

Заранее спасибо!

Ответы [ 5 ]

7 голосов
/ 17 мая 2010

Я сам нашел это решение. Добавьте это к вашему CSS:

body {
  -webkit-touch-callout: none;
}

Для ясности, это отключает лист действий , который появляется, когда вы удерживаете гиперссылку.

3 голосов
/ 18 апреля 2011

Вы также можете справиться с этим с помощью JavaScript, позвонив по телефону:

document.documentElement.style.webkitTouchCallout = "none";
2 голосов
/ 10 ноября 2014
 - (void)webViewDidFinishLoad:(UIWebView *)webView
 {
    [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];
 }
0 голосов
/ 22 сентября 2017

Вы можете переопределить presentViewController в UINavigationController и ничего не делать.

@implementation CDVInAppBrowserNavigationController : UINavigationController

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0){
    //Do nothing.
}

@end
0 голосов
/ 08 мая 2012

Свойство dataDetectorTypes может быть тем, что вы ищете.Если вы хотите отключить эту возможность, просто введите код:

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