2010-05-11 9 views
5

Me gustaría saber cómo puede deshabilitar UIActionSheets, específicamente las Hojas de acción que se muestran después de tocar y mantener hipervínculos en un UIWebView. Estos parecen estar habilitados por defecto en UIWebViews que contiene la dirección del enlace respectivo en el título de la alerta. También están habilitados en Safari.UIWebView - Cómo deshabilitar hojas de acción (UIActionSheet)?

(¿Cómo) es posible deshabilitar todas las Hojas de acción de este tipo dentro de un UIWebView?

¡Gracias de antemano!

Respuesta

7

Acabo de encontrar esta solución yo mismo. Agregue esto a tu CSS:

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

Para ser claros, esto desactiva la hoja acción que aparece cuando se mantiene pulsado un hipervínculo.

+0

Sí, tienes razón, escribí la incorrecta, pero quería decir la Hoja de Acción, no una Alerta. ¡Muchas gracias! ;-) – RodneyFarva

3

También puede manejar esto a través de JavaScript llamando:

document.documentElement.style.webkitTouchCallout = "none"; 
0

La propiedad dataDetectorTypes podría ser lo que buscas. Si desea desactivar la posibilidad de que la hoja de acción, basta con insertar el código:

webView.dataDetectorTypes = UIDataDetectorTypeNone; 
2
- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"]; 
} 
0

Puede anular presentViewController en UINavigationController y no hacer nada como esto.

@implementation CDVInAppBrowserNavigationController : UINavigationController 

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

@end 
Cuestiones relacionadas