restaurar para modo funciona descargar desarrollador actualizar ios macos wifi mobile-safari captivenetwork

ios - modo - safari para windows 10 2017



Wifi emergente cautivo: haga clic en un enlace para abrir Safari (3)

Tenemos un problema en nuestra red con dispositivos iOS (ipads, iphones, etc.): después de conectarnos al SSID, el iPhone / ipad abre inmediatamente el Asistente de red cautivo (CNA), es como un navegador reducido sin botones de navegación, etc. - que muestra nuestra página de bienvenida (listo para que el usuario autentique su MAC en la red para darle Internet). Este CNA es una función de iOS, y sucede automáticamente.

Miré a mi alrededor en este foro cómo hacer que el usuario abra su navegador Safari haciendo clic en un enlace (mientras está en la CNA), y así lo envié lejos de la CNA a Safari (que es donde preferiría que estuviera).

Busqué frases como: "Cómo configurar un enlace para abrir en safari", pero obtengo resultados sobre personas que usan phonegap para hacer tal cosa ...
Un usuario habló sobre el uso de window.open (myURL, ''_system'') pero no sé si eso está solucionando mi problema.

Básicamente, mi plan es: - Hacer que mi página de bienvenida (la página que se muestra después del usuario conectado a mi SSID) detecte qué tipo de navegador tiene el dispositivo del usuario. Mi página de bienvenida se encuentra en un sitio que se encuentra en el jardín amurallado de mi controlador, por lo que todos los dispositivos pueden ver esa página de bienvenida (ya sea que tengan acceso completo a Internet o no). - Si el usuario tiene un dispositivo iOS, el navegador CNA se abre automáticamente. Mi controlador detecta que el dispositivo tiene un navegador CNA y carga una página simple con el mensaje (como): "haga clic aquí para comenzar a navegar": durante los siguientes segundos (mientras el usuario procesa el mensaje), mi controlador le da al usuario Acceso completo a Internet de MAC: cuando el usuario hace clic en ese enlace en el navegador CNA, el CNA se cierra y luego abre Safari, y también obliga a Safari a abrir la página de bienvenida del destino (donde quiero que esté mi usuario, dependiendo de la antena a la que esté conectado).

Realmente espero que todo tenga sentido ...

Encontré este enlace sobre el navegador CNA en este foro: Omite el inicio de sesión del Asistente de red cautivo de Apple en iOS 7

Pero habla de que el usuario abra Safari desde el principio (deshabilitando la función CNA), "esperando" que el usuario abra Safari (en lugar de ir directamente a una de sus aplicaciones). Prefiero que el usuario tenga que "hacer clic para continuar", lo que hace que Safari se abra y vea mi Página de bienvenida.


Extraído de una respuesta por Ryan en ¿Cómo puedo abrir un enlace externo en Safari que no sea el UIWebView de la aplicación?

Para tener un cambio de enlace específico a Safari, simplemente agregue target = "_ system" al enlace, como en

<a href="http://www.domain.com/" target="_system">Link Text</a>

O para capturar todos los enlaces en su javascript que tienen target = "_ blank", incluya jQuery y páselos a window.open con el parámetro ''_system''. Esto funcionará tanto en iOS como en Android.

$(document).on(''click'', ''a[target="_blank"]'', function(ev) { var url; ev.preventDefault(); url = $(this).attr(''href''); window.open(url, ''_system''); });


Javascript NO funciona completamente en CNA, está deshabilitado por razones de seguridad. target = "_ system" es una función de safari , no una CNA. ==> brevemente, _system falla en CNA.


EDITAR : esta solución no funciona después de iOS 10.3. No estoy seguro si es una característica o un error: https://forums.developer.apple.com/thread/75498

EDIT2 : Aparentemente funciona de nuevo en iOS 11

Existe una forma sencilla de hacerlo si tiene control sobre el servidor de portal cautivo.

Al conectarse a una red wifi, los dispositivos iOS envían una solicitud GET a un conjunto de direcciones URL predefinidas ( http://www.apple.com/library/test/success.html , ...), para ver si hay conectividad a Internet (solicitudes wispr). El dispositivo iOS espera la respuesta <HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML> . Si la solicitud se realiza correctamente, pero la respuesta es diferente (por ejemplo, la página del portal cautivo), se activa la apertura del CNA.

En esta etapa, la CNA cree que no está conectado y mostrará un botón Cancel en la parte superior. Cada enlace se abrirá dentro de la CNA y no en una ventana de Safari, sin importar lo que haga. El CNA se realiza para que pueda obtener su usuario a través del proceso de inicio de sesión. Para ver si el proceso de inicio de sesión se ha realizado y la conexión finalmente se ha establecido, el dispositivo iOS enviará otra solicitud de wispr. Esto sucede cada 40 segundos, o siempre que se emite una solicitud HTTP (navegación dentro de la CNA).

Cuando su servidor finalmente responda con Success a una solicitud de wispr, el CNA marcará como connected , el botón en la parte superior cambiará a Done . En esta etapa, cualquier enlace a una URL externa cerrará el CNA y se abrirá en Safari :)

Entonces, para resumir, puede lograr lo que quiere con los siguientes pasos de conexión:

  1. el servidor responde la solicitud inicial de wispr con su página de CNA.
  2. La página se abre en CNA. En esa página, tenga algún JavaScript que active inmediatamente la navegación dentro de la CNA, por ejemplo: <script>window.location.reload(true)</script> esto activará el dispositivo iOS para enviar inmediatamente otra solicitud wispr
  3. el servidor responde a esta segunda solicitud de wispr con <HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML> , esto hará que el CNA marque como conectado
  4. tener su página CNA para mostrar un enlace a una URL externa