2013-01-01 9 views
9

ich in einer E-Mail einen eigenen URL-Schema Link schickte:Öffnen einen benutzerdefinierte URL-Link in Safari/GMail

[body appendString:@"<div><a href=\"my-custom-url-scheme:test\"><button type=\"button\">Open in App</button></a></div>"]; 

Diese erfolgreich auf eine Schaltfläche in der E-Mail fügt ich das Senden bin die, wenn sie angezapft, meine app öffnet (wenn es installiert ist).

Das funktioniert gut, wenn ich die Mail in mail.app auf dem iOS-Gerät öffne, aber nichts unternehme, wenn ich die Mail in Google Mail öffne (sowohl über Safari als auch über die native Google Mail App).

Ist dies eine Einschränkung des Frameworks? Oder sollte Safari diese Links erkennen können?

+0

Ich denke, es muss etwas sein, was GMail tut - ich habe die gleiche Zeile von HTML auf einen Webserver hochgeladen und es hat gut von Safari geöffnet. –

+1

Ich habe in das gleiche Problem gerannt. Ich nehme auch an, dass es das ist, was Sie denken - Gmail ignoriert diese benutzerdefinierten Schemas. – brainjam

+2

Bestätigt, ab dem 25. April 2013 Gmail ignoriert weiterhin benutzerdefinierte URL-URLs für iOS. – pchap10k

Antwort

7

Die beste Lösung, die ich gefunden habe, ist die Verknüpfung mit einem PHP-Skript auf einem Webserver, der Parameter akzeptiert und die Anfrage an Ihr benutzerdefiniertes URL-Schema in Safari umleitet.

wird dieser Link in der E-Mail:

http://myserver.com/_script.php?parameter=one

Diese leitet dann zu:

myappscheme: // offen/Parameter = ein

Es Sie bedeutet haben Öffne Safari, um den Link zu bearbeiten, aber da du den Link von der Google Mail-App aus öffnest, denke ich, dass das ein kleines Problem ist, damit das funktioniert.

+0

Ich finde tatsächlich, dass dies nicht funktioniert für mich über Google Mail in iOS Safari. Meine expressjs-App gibt eine Weiterleitung an mein benutzerdefiniertes URL-Schema aus, aber Safari scheint es einfach zu ignorieren (ich bekomme einen leeren Bildschirm). Scheint so, als ob * es * funktionieren sollte, aber ich kann es einfach nicht schaffen ... –

+0

Was ist, wenn es keine Internetverbindung gibt, wenn der Benutzer versucht, den Link vom Gmail-Client zu öffnen? –

+0

Sie werden in Safari sofort einen Fehler vom Typ "Kann nicht verbinden" sehen und der Prozess wird nicht weiter gehen. Eine Internetverbindung ist die einzige Möglichkeit, wie diese Methode funktioniert. – AndyDunn