2010-06-30 2 views
5

Ich habe eine Website und eine native iPhone App. Die App registriert ein benutzerdefiniertes Protokoll. Ich möchte, dass die Site bei Bedarf automatisch zum Protokoll umleitet, aber nur, wenn der Benutzer die App installiert hat (um einen störenden Dialog zu vermeiden). Das bedeutet, dass ich einen Status aus der App schreiben muss, den ich in einer mobilen Safari lesen kann, um die App als installiert zu markieren. Cookies scheinen nicht prozessübergreifend zu existieren. Kann ich irgendwo anders meinen Marker speichern?Gibt es einen gemeinsamen Status zwischen iPhone Apps und Mobile Safari?

Antwort

4

Schauen Sie sich this Blogpost an, um zu sehen, wie Apple es für die Mobile Me Gallery App macht. Es beinhaltet die App, die in Safari eine Website (auf Ihrem Server) öffnet, die ein Cookie "App Installiert" in Safari lädt.

3

Nachdem ich auf diese Frage zurückgekommen bin, habe ich eine andere Teillösung gefunden. Es stellt sich heraus, dass der ungültige Protokolldialog die JavaScript-Ausführung nicht wie eine Warnung blockiert.

So, hier ist, wie Sie Rückfall behandeln, wenn die App aus dem Web-Start:

  • einen SetTimeout Handler registrieren, um die Ausweich Seite (mit window.location.replace) zu umleiten nach, sagen wir, 500 ms
  • ein onBlur Handler registrieren, dass das Timeout
  • öffnen Sie eine uRL mit Ihrem kundenspezifischen Protokoll bricht
  • Wenn die App installiert ist, wird der Browser öffnen Sie die App, verwischen die Seite und Aufheben der Rückfall
  • Wenn die App nicht installiert ist, sieht der Benutzer nur den Dialog für höchstens 500 ms, bevor sie auf die Ausweich Seite

gewischt sind weg tatsächlich, wie ich das besser, denn während auf der einen Seite Menschen ohne die App Manchmal wird auf der Website ein kurzer Dialog angezeigt, auf der anderen Seite hat dies keinen Einfluss auf die Erststart-Erfahrung der App. Die Technik, die in hantaubs Antwort beschrieben wird, verursacht beim ersten Start der App ein paar ablenkende Übergänge und einen Blitz der mobilen Safari.

Verwandte Themen