È possibile impostare un cookie in un'applicazione iPhone che persiste, in modo che successivamente quando l'utente si trova in Mobile Safari, tale cookie possa essere inviato a un server web?Impostazione di un cookie in un'app per iPhone
risposta
** Aggiornamento 2017 **
Un sacco di modifiche ai meccanismi di sicurezza e comunicazione cross-app sono state introdotte per iOS negli ultimi anni da quando questa è stata la prima risposta.
Il seguente codice non funziona più sulle versioni iOS attuali poiché Safari non accetta più javascript:...
in URL e framework come NSURL
e li recupera e restituisce nil
.
L'alternativa che funziona ancora è quella di ospitare un sito Web e di aprire Safari o integrare tale pagina HTML nella tua app ed eseguire un piccolo server http per ospitarla su richiesta.
iOS ** Fino 6.x **
Dal momento che Apple ha costretto il sandboxing su tutte le applicazioni App Store
non c'è attualmente alcun modo semplice per realizzare la vostra richiesta.
Si potrebbe tuttavia aprire una speciale http://-URL dall'applicazione che contiene JavaScript per inserire un cookie:
NSString jsURL = @"javascript:function someFunction(){ /* your javascript code here */ } someFunction();void(0)";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: jsURL]];
Utilizzo di javascript in URL è stato utilizzato da diverse applicazioni per iPhone per attraversare la comunicazione
con MobileSafari (ad esempio instapaper).
Un'altra opzione sarebbe quella di includere una pagina HTML statica nell'app o sul server e richiedere a MobileSafari di aprirlo.
La pagina a sua volta potrebbe impostare il cookie permanente.
Spero che questo aiuti!
Ho provato questo e non sembra funzionare. [NSURL URLWithString: @ "javascript: function someFunction() {alert ('test!');} SomeFunction(); void (0)"] restituisce nil –
come potremmo istruire il safari per aprire un html statico dalla nostra app ??? – Deam
Utilizzando l'iOS Safari.app non è possibile (non senza jailbreak e file: // supporto). – Shirkrin
Il documentation for NSCookieStorage
suggerisce che sarebbe un tale meccanismo. Ma se "tutte le applicazioni" include davvero Safari Mobile o meno, la tua sperimentazione dovrà determinare ...
Vedere anche la documentazione generale per il URL Loading System.
Sulla base dei miei rapidi esperimenti, i cookie che stavo salvando usando NSCookieStorage erano leggibili solo dal app che li ha creati. Non sono sicuro se sto facendo qualcosa di sbagliato o se quel passaggio nei documenti è fuorviante. –
Ammetto che non l'ho mai usato nelle mie app, ma ho visto commenti sul web che sembravano indicare che altri avevano avuto successo con esso. Mi dispiace sapere che non ha funzionato per te. :-( –
Sono nuovo nello sviluppo di iPhone, ma non aprire una UIWebView consente al server di impostare un cookie sul browser, quindi quando l'utente visita il sito con Safari il cookie sarebbe leggibile sul server web? Forse un UIWebView nascosto o piccolo? Non posso dire quale sia il caso d'uso dalla tua domanda.
UIWebViews sono in modalità sandbox e utilizzano una diversa memorizzazione dei cookie su Mobile Safari – Fraser
Credo che ciò sia reso semplice utilizzando la libreria ASIHTTPRequest. Incapsula l'uso del negozio di cookie globale.
http://allseeing-i.com/ASIHTTPRequest/How-to-use
È possibile effettuare richieste con questa libreria che maturerà i cookie, e quindi questi biscotti interesserà altre richieste in seguito.
Lo uso con grande efficacia per accedere alle API autenticate all'interno della mia app per iPhone.
- 1. Impostazione di un cookie per sito
- 2. Impostazione di un cookie per cURL da utilizzare
- 3. Impostazione di un cookie in un controllo WebBrowser
- 4. Impostazione di più cookie in Javascript
- 5. Impostazione di un cookie in una richiesta AJAX?
- 6. Cancella cookie simulatore iPhone
- 7. Impostazione cookie con immissione modulo
- 8. Impostazione dei cookie in Golang (rete/http)
- 9. impostazione dei cookie di sottodominio accessibile a un sottodominio secondario?
- 10. Abilitare i cookie in UIWebView (iPhone)
- 11. Impostazione cookie utilizzando l'intestazione ("Set-cookie") vs funzione setcookie()
- 12. Impostazione programmatica del simulatore iphone
- 13. iPhone: Impostazione barra di navigazione Titolo
- 14. impostazione cookie con flag HTTPOnly nel codeigniter
- 15. Java impostazione cookie sul percorso principale
- 16. ASP.NET Core MVC: impostazione scadenza cookie identità
- 17. Impostazione dei cookie nella risposta mojolicious
- 18. impostazione Microsoft OWIN Test Server cookie
- 19. Le WebApp per iPhone/iPad non consentono i cookie?
- 20. Impostazione cookie persistente da Java non funziona in IE
- 21. Applicazione web iPhone, non memorizzare cookie
- 22. Gestione dei cookie HTTP su iPhone
- 23. UILabel - impostazione font - typeface a livello di codice in iPhone
- 24. Creare un cookie per NSURLRequest?
- 25. iPhone - Impostazione dello sfondo su UITableViewController
- 26. Rileva impostazione ora 24 ore su iPhone
- 27. Impostazione UILabel - Carattere tramite codice - genera un errore - iPhone
- 28. Impostazione httponly nel cookie JSESSIONID (Java EE 5)
- 29. Ripristino del tempo di scadenza per un cookie in Flask
- 30. Tempo di scadenza predefinito per un cookie in Rails
Ecco la soluzione: http: // stackoverflow.it/questions/5837702/nshttpcookiestorage-state-not-saved-on-app-exit-any-definitive-knowledge-docume/15633164 # 15633164 –