Einstellen eines Cookies in einer iPhone App

8

Ist es möglich, einen Cookie in einer iPhone-Anwendung zu setzen, der persistent ist, so dass dieser Cookie später, wenn er sich in Mobile Safari befindet, an einen Webserver gesendet werden kann?

    
Brad The App Guy 22.10.2009, 03:30
quelle

4 Antworten

13

** Update 2017 **
In den letzten Jahren wurden viele Änderungen an den Sicherheitsmechanismen und der Cross-App-Kommunikation in iOS eingeführt, da dies zum ersten Mal beantwortet wurde.

Der folgende Code funktioniert nicht mehr bei aktuellen iOS-Versionen, da Safari javascript:... in URLs und Frameworks wie NSURL nicht mehr akzeptiert und nil zurückgibt.

Die eine Alternative, die immer noch funktioniert, besteht darin, entweder eine Website zu hosten und Safari zu öffnen oder eine solche HTML-Seite in Ihre App zu integrieren und einen kleinen http-Server zu betreiben, um sie bei Bedarf zu hosten.

** iOS bis 6.x **
Seit Apple das Sandboxing in allen App Store-Anwendungen erzwungen hat Es gibt derzeit keine einfache Möglichkeit, Ihre Anfrage zu realisieren.

Sie könnten jedoch ein spezielles Ссылка aus Ihrer Java-Anwendung öffnen, um ein Cookie zu platzieren:

%Vor%

Die Verwendung von Javascript in URLs wurde von verschiedenen iPhone-Anwendungen verwendet, um die Kommunikation mit
zu kommunizieren mit MobileSafari (zum Beispiel instapaper ).

Eine weitere Option wäre, eine statische HTML-Seite in Ihre App oder auf Ihren Server aufzunehmen und MobileSafari anzuweisen, sie zu öffnen.
Die Seite wiederum könnte den permanenten Cookie setzen.

Hoffe, das hilft!

    
Shirkrin 27.10.2009, 16:09
quelle
2

Ich glaube, dass dies mit der ASIHTTPRequest Library leicht gemacht wird. Es kapselt die Verwendung des globalen Cookie-Speichers.

Ссылка

Sie können mit dieser Bibliothek Anfragen stellen, aus denen Cookies entstehen. Diese Cookies wirken sich später auf andere Anfragen aus.

Ich verwende dies sehr gut, um auf authentifizierte APIs in meiner iPhone App zuzugreifen.

    
Andrew Johnson 01.11.2009 20:56
quelle
0

Die Dokumentation für NSCookieStorage schlägt vor, dass es ein solcher Mechanismus wäre. Aber ob "alle Anwendungen" wirklich Mobile Safari umfasst oder nicht, Ihre Experimente müssen bestimmen ....

Siehe auch die allgemeine Dokumentation für URL-Ladesystem .

    
Sixten Otto 22.10.2009 03:51
quelle
0

Ich bin neu in der iPhone-Entwicklung, würde aber kein UIWebView öffnen, damit Ihr Server ein Cookie im Browser setzen kann. Wenn der Benutzer die Seite mit Safari besucht, ist der Cookie für Ihren Webserver lesbar. Vielleicht ein verstecktes oder kleines UIWebView? Ich kann nicht sagen, was der Anwendungsfall von Ihrer Frage ist.

    
Sandro 30.10.2009 16:07
quelle

Tags und Links