¿Es posible establecer una cookie en una aplicación de iPhone que persista, de modo que más tarde cuando el usuario esté en Mobile Safari, esa cookie se pueda enviar a un servidor web?Configuración de una cookie en una aplicación de iPhone
Respuesta
** Actualización 2017 **
Se han introducido muchos cambios en los mecanismos de seguridad y la comunicación entre aplicaciones en iOS en los últimos años desde que se respondió por primera vez.
El código de abajo ya no funciona en iOS versiones actuales desde Safari ya no acepta javascript:...
en las URL y los marcos como NSURL
atrapar a estos y volver nil
.
La única alternativa que aún funciona es alojar un sitio web y tener Safari abrirlo o integrar dicha página HTML en su aplicación y ejecutar un pequeño servidor http para alojarlo bajo demanda.
** iOS hasta 6.x **
Desde que Apple ha obligado a los sandboxing en todas las aplicaciones de la tienda de aplicaciones
actualmente no hay manera fácil de realizar su solicitud.
No obstante, usted podría abrir una especial http://-URL desde la aplicación que contiene Javascript para colocar una cookie:
NSString jsURL = @"javascript:function someFunction(){ /* your javascript code here */ } someFunction();void(0)";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: jsURL]];
uso de JavaScript en las URL ha sido utilizado por diferentes aplicaciones de iPhone para cruzar comunicarse
con MobileSafari (por ejemplo instapaper)
Otra opción sería incluir una página HTML estática en su aplicación o en su servidor e indicarle a MobileSafari que la abra.
La página a su vez podría establecer la cookie permanente.
Espero que esto ayude!
Ha probado esto y parece que no funciona. [NSURL URLWithString: @ "javascript: function someFunction() {alert ('test!');} SomeFunction(); void (0)"] devuelve nil . –
¿Cómo podríamos instruir a Safari para que abra un html estático desde nuestra aplicación? – Deam
Usando iOS Safari.app no se puede (no sin jailbreak y file: // support). – Shirkrin
El documentation for NSCookieStorage
sugiere que sería un mecanismo de este tipo. Pero si "todas las aplicaciones" realmente incluye Mobile Safari o no, su experimentación tendrá que determinar ...
Consulte también la documentación general para el URL Loading System.
Basado en mis rápidos experimentos, las cookies que estaba guardando usando NSCookieStorage solo fueron legibles por el aplicación que los creó. No estoy seguro de si estoy haciendo algo mal o si ese pasaje en los documentos es engañoso. –
Admito que nunca lo he usado en mis propias aplicaciones, pero vi comentarios en la web que parecían indicar que otros habían tenido éxito. Lamento escuchar que no funcionó para ti. :-( –
Soy nuevo en el desarrollo de iPhone, pero si no abriera un UIWebView, ¿permitiría que su servidor establezca una cookie en el navegador para que cuando el usuario visite el sitio con Safari la cookie pueda leerse en su servidor web? Tal vez un UIWebView oculto o pequeño? No puedo decir cuál es el caso de uso de su pregunta.
UIWebViews tienen espacio aislado y usan un almacenamiento de cookies diferente para Mobile Safari – Fraser
Creo que esto es fácil mediante el uso de la biblioteca ASIHTTPRequest. Encapsula el uso de la tienda de cookies global.
http://allseeing-i.com/ASIHTTPRequest/How-to-use
Puede hacer peticiones con esta biblioteca, que se acumularán las cookies, y luego estas cookies afectarán otras peticiones más tarde.
Lo uso con gran efecto al acceder a las API autenticadas en mi aplicación de iPhone.
- 1. Symfony2: configuración de una cookie
- 2. Incrustar Python en una aplicación de iPhone
- 3. Imágenes SVG en una aplicación de iPhone
- 4. ¿Diseñar una aplicación de iPhone compleja?
- 5. iPhone versión de la aplicación de actualización (en Configuración)
- 6. ¿Cuál es la diferencia entre una aplicación web de iPhone y una aplicación de iPhone?
- 7. JSF Almacenamiento de datos en una cookie
- 8. Implementar una aplicación de iphone de xcode a iphone
- 9. Distribuir una versión de desarrollo de una aplicación de iPhone
- 10. Guardar configuración en una aplicación .NET WinForms
- 11. Identificador único para una aplicación de iPhone
- 12. Dónde guardar el estado en una aplicación de iPhone
- 13. Almacenar una imagen en una cookie
- 14. ¿Cómo almacenar una matriz en una cookie?
- 15. ¿Almacena una matriz multidimensional en una cookie?
- 16. ¿Configurando una cookie en una solicitud AJAX?
- 17. Programando la apertura de la aplicación de configuración (iPhone)
- 18. Almacenamiento de matrices anidadas en una cookie
- 19. degradación a una versión anterior de una aplicación para iphone
- 20. Crear una aplicación para iPhone sin Xcode
- 21. ¿Cómo eliminar una cookie?
- 22. Arquitectura de una aplicación de vistas múltiples en el iPhone
- 23. ¿Supervisa el uso de memoria en una aplicación de iphone?
- 24. Detecta una aplicación en la pantalla de inicio de iphone
- 25. Compilación de SQLite personalizado para una aplicación de iPhone
- 26. ¿Una cookie sin dominio?
- 27. Aplicación web en un iPhone: diseñándola para que parezca una aplicación nativa de iPhone
- 28. Lectura del indicador de notificación en la aplicación "Configuración" dentro de la aplicación de mi iPhone
- 29. iPhone: ¿Guarda datos de usuario en plist, SQLite o cookie?
- 30. ¿Puedo iniciar una aplicación desde otra aplicación en el iPhone
Aquí está la solución: http: // stackoverflow.com/questions/5837702/nshttpcookiestorage-state-not-saved-on-app-exit-any-definititive-knowledge-docume/15633164 # 15633164 –