14

Estoy construyendo una aplicación web optimizada para iPhone a pantalla completa. Se inicia desde la página de inicio como una aplicación nativa y se comporta como una aplicación independiente a través de la siguiente directiva, pero es simplemente HTML/CSS/JavaScript, no incluye PhoneGap.Devolución de llamada OAuth en aplicaciones web de iPhone

<meta name="apple-mobile web-app-capable" content="yes" /> 

Al intentar autenticar sobre OAuth, la redirección a Twitter (o cualquier otro proveedor de OAuth) me saca de mi aplicación web a pantalla completa y en Safari Mobile. Una vez que se completa la autenticación de Twitter, el redireccionamiento a mi aplicación no inicia la aplicación de mi página de inicio, sino que simplemente redirige dentro de Mobile Safari. ¿Es posible hacer OAuth dentro de la aplicación web de una página de inicio de iPhone? A falta de eso, ¿puedo obtener la devolución de llamada de OAuth para volver a iniciar la aplicación web de mi página de inicio?

+0

solo queríamos decir que no hay forma de volver a ejecutar una aplicación de forma programada (tal vez se pueda en un dispositivo con jailbreak pero no en condiciones normales) – mattacular

+0

Solo para aclarar. Como está creando una aplicación web, ya se encuentra en Mobile Safari. ¿Quiere decir que la página de autenticación se abre en una nueva página en Safari? –

+2

Cuando guarda una aplicación web optimizada para iPhone en la página de inicio y la ejecuta desde allí, en realidad no se abre en Safari. Bueno, Safari lo sigue mostrando bajo las sábanas, pero se lanza como una aplicación independiente. Consigue su propio ícono en la barra de tareas de cambio rápido de aplicaciones y todo. El problema es que un enlace a Twitter deja ese contenedor. – mustpax

Respuesta

14

He tenido un problema similar recientemente, y he descubierto que si configura la URL en Javascript con un window.location.href="http://example.com/whatever", entonces iOS no cambia a Safari. Logré obtener el pago de PayPal y el inicio de sesión de Facebook trabajando en aplicaciones web independientes sin cambiar a Safari utilizando este método. Si envía un formulario, hágalo también a través de JS y obtenga la URL de redireccionamiento de la respuesta, luego configure la ubicación. En cuanto a la devolución a su aplicación después, depende de cómo funciona el servicio externo.

Si eso no es bueno, puede hacer una ventana emergente alert('You will be passed to Safari for authentication. Reload this app afterwards.') antes de que se cambien a Safari. No es genial, ¡pero es mejor que sorprenderlos con el cambio automático de aplicaciones!

+0

Google OAuth aún insiste en cambiar a Safari desde la pantalla "Seleccionar una cuenta" si solicita cierto alcance de permiso (por ejemplo, https://www.googleapis.com/auth/youtube) y tiene varias cuentas asociadas con su inicio de sesión. – Dunc

Cuestiones relacionadas