¿Cómo se puede detectar si Safari ha sido deshabilitado por los controles parentales en el iPhone? Sé que es posible porque la aplicación X3Watch se niega a funcionar hasta que Safari se desactive. Por lo que puedo ver, no hay API para los controles parentales, entonces, ¿qué técnica se puede usar para esto?Cómo detectar si Safari está deshabilitado en el iPhone
5
A
Respuesta
4
No he probado esto, pero es OS3.0 y posterior, puede detectar si una URL puede ser abierta por cualquier aplicación en el sistema usando [[UIApplication sharedApplication] canOpenURL:myURL]
. Apuesto a que devolverá NO
si Safari está deshabilitado.
0
Aquí está mi intento de incluir la solución a esto en un controlador de vista. Deben utilizarse los dos bools porque un usuario puede abrir un programa externo independientemente de safari cuando se carga la vista, pero el botón que necesita safari aún no se ha abierto.
@implementation ViewController {
@private BOOL externalProgramOpened;
@private BOOL buttonPressed;
}
-(void) setExternalProgramOpened {
// Only set to yes if we're trying to open safari
if(buttonPressed) {
externalProgramOpened = YES;
}
}
-(void) notifyUserOfRestrictedAccess {
if(externalProgramOpened == NO) {
[[[UIAlertView alloc] initWithTitle:@"Safari Needs to be enabled!"
message:@"It looks like the Safari browser is
disabled. Please enable it
(Settings>General>Restrictions) in order to
continue."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles: nil] show];
} else {
externalProgramOpened = NO;
}
buttonPressed = NO;
}
-(void) viewWillAppear:(BOOL)animated {
externalProgramOpened = NO;
buttonPressed = NO;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(setExternalProgramOpened)
name:UIApplicationWillResignActiveNotification
object:nil];
}
-(void) viewWillDisappear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIApplicationWillResignActiveNotification
object:nil];
[super viewWillDisappear:animated];
}
- (IBAction)buttonPressed:(id)sender {
buttonPressed = YES;
NSString * URL = *someURL*;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]];
[self performSelector:@selector(notifyUserOfRestrictedAccess) withObject:self
afterDelay:.75];
}
Cuestiones relacionadas
- 1. iPhone: ¿Cómo detectar si iTunes está jugando?
- 2. Compruebe si "exec" está deshabilitado
- 3. iOS - detectando si Game Center está deshabilitado
- 4. ¿Cómo comprobar si javascript está deshabilitado?
- 5. ¿Cómo redirigir si javaScript está deshabilitado?
- 6. Cómo detectar iphone está en modo silencioso
- 7. ¿Cómo verificar programáticamente si el hotspot está habilitado o deshabilitado?
- 8. jQuery Mobile cómo comprobar si el botón está deshabilitado?
- 9. ¿Cómo comprobar si el menú desplegable está deshabilitado?
- 10. Detectar si el dispositivo se está cargando
- 11. Cómo detectar si el iphone está sincronizado cuando la aplicación no se está ejecutando
- 12. ¿Cómo saber si NSAssert está deshabilitado en versiones de lanzamiento?
- 13. Detectar si el monitor está en C#
- 14. Jquery seleccionar todo si no está deshabilitado
- 15. Detectar si el padre html está oculto
- 16. Safari iPhone - ¿Cómo detectar el nivel de zoom y el desplazamiento?
- 17. Cómo detectar si numpy está instalado
- 18. Cómo detectar si un micrófono está presente
- 19. ¿Cómo detectar si Vista UAC está habilitado?
- 20. ¿Cómo puedo detectar si Dispatcher.DisableProcessing está activo?
- 21. ¿Cómo detectar si el iPhone tiene pantalla Retina o no?
- 22. ¿Cómo detectar si UISwitch está encendido/apagado?
- 23. Cómo detectar si ASP.NET está habilitada en IIS 7
- 24. PHP - Cómo detectar si el búfer de salida está activado
- 25. Selenium C# Webdriver Cómo detectar si el elemento está visible
- 26. cómo detectar si el modo de acción ya está presente
- 27. ¿Cómo puedo detectar si el usuario está "inactivo" con javascript?
- 28. ¿Cómo se puede detectar mediante programación si javascript está habilitado/deshabilitado en una aplicación de escritorio de Windows? (Control WebBrowser)
- 29. iPhone: redirigir a la tienda de aplicaciones en el safari móvil si la aplicación no está instalada
- 30. Nodejs cómo detectar si el módulo está incluido
Sí, lo probé y tienes razón. ¡Gracias! – zorro2b
¿Esto todavía funciona? Intenté esto en iOS 6 (iPad 3), pero devuelve SÍ incluso si Safari está deshabilitado en Restricciones. Sin embargo, si realmente llamo a openURL :, Safari NO se abre cuando está deshabilitado, como se esperaba. – Michael
Para responder a mi propia pregunta: [link] (http://stackoverflow.com/questions/12771177/uiapplications-canopenurl-openurl-return-misleading-result) – Michael