In mobilen Websites oder Web-Apps kann es vorkommen, dass man gerne auf native Apps verlinken möchte. Ob Telefonnummer wählen, SMS schicken oder Facebook-App öffnen: Dies alles funktioniert üblicherweise über spezielle URLs, bei denen das http
durch ein anderes Kürzel ersetzt wird (sogenannte URL-Schemes).
Hier einige Aktionen, die man per Link aus dem mobilen Safari-Browser (iPhone und iPad) auslösen kann:
- Email: Der Email-Client auf dem iPhone öffnet sich und man kann eine Email schreiben.
- Telefon: Wählen einer Telefonnummer.
- SMS: Senden einer SMS an eine Telefonnummer
- Maps: Aufrufen der nativen Karten-App (Google Maps)
- YouTube: Öffnen eines YouTube-Videos in der nativen YouTube-App.
- Facebook: Öffnen der App und Anzeigen von bestimmten Inhalten
Der folgende Artikel zeigt, wie dies auf Apples iOS-Betriebssystem funktioniert. Auf einem iOS-Gerät kann man dies auch direkt an diesem Beispiel ausprobieren, das ich zu Demozwecken erstellt habe: Demo mit iOS-URL-Schemes.
Offizielle Apple-Apps aus dem Browser ansprechen
Der Vorteil der folgenden Apple-Apps liegt darin, dass diese auf jedem Apple-Gerät vorinstalliert und somit immer vorhanden sind. Dadurch funktionieren diese Links auf jeden Fall.
Email-Client öffnen
Bereits seit langem werden im Internet mailto:
-Links verwendet, um den Standard-Email-Client zu öffnen. Auf dem iPhone geht dies auf die gleiche Weise, wodurch man z.B. den Empfänger, die CC-Empfänger, den Betreff und den Emailtext vordefinieren kann.
[html]
…
…
…
[/html]
Telefonnummer wählen und SMS schreiben
Sowohl des Anrufen einer Telefonnummer als auch das SMS-Schreiben funktionieren nach dem gleichen Prinzip: Man schreibt einfach einen gewöhnlichen Link mit der Ziel-URL tel:
bzw. sms:
. Bevor das Telefon die Nummer wählt, erfolgt ein Pop-Up mit einer Sicherheitsabfrage, ob der Anruf tatsächlich gewünscht ist. Ein Anruf auf dem iPad geht logischerweise nicht, weshalb das Tablet stattdessen die Option anbietet, die Nummer ins Adressbuch zu übernehmen. Da das iPad auch eine SMS-/Nachrichten-App, funktioniert das SMS-Schreiben auf dem Tablett von Apple ebenso.
Eigentlich sollten Telefonnummer auch automatisch erkannt werden, ohne diese speziell mit der genannten Methode explizit zu verlinken. Allerdings kann man so sicherstellen, dass dies auf jeden Fall korrekt implementiert ist. Werden fälscherweise andere Nummern auf der Website als Telefonnummer erkannt, lässt sich diese Auto-Erkennung übrigens auch deaktivieren.
iCal / Kalender
Ein Kalender im iCal-Format kann man über webcal://
verlinken, wodurch er in der iCal-App abonniert werden kann.
[html]
…
[/html]
[ad]
Karten-App öffnen
Die Karten-App wird von iOS automatisch gestartet, wenn man von einer mobilen Website auf maps.google.com
verlinkt. Es wird also anstatt eines URL Schemes einfach die Domainanfrage abgefangen. Mithilfe von Parametern in der URL kann man die gewünschte Darstellung festlegen. Man kann auch direkt in den Routenplaner-Modus springen, wenn man Source Address (saddr
) und Destination Address (daddr
) angibt. Eine Übersicht der Parameter findet man in der Apple-Doku.
YouTube-Video anschauen
Um ein Video zu öffnen, muss man lediglich einen normalen Link auf YouTube setzen. iOS fängt dies wie bei Google Maps ab und öffnet darauf hin die native YouTube-App. Der Link setzt sich zusammen aus http://youtube.com/v/
und der Video-ID.
[html]
..
[/html]
Third-Party-Apps aus dem Browser öffnen
Alle nativen Apps können eigenen URL-Schemes definieren und auf einem iPhone registrieren, so dass diese z.B. aus Mobile Safari heraus aufgerufen werden.
One of the coolest features of the iPhone SDK is an application’s ability to “bind” itself to a custom URL scheme and for that scheme to be used to launch itself from either a browser or from another application on the iPhone.
Allerdings besteht das Problem, dass man nicht abfragen kann, welche Apps auf dem Smartphone installiert sind. Insofern ist ein bisschen Glückssache, ob der Link erfolgreich ausgeführt werden kann.
Facebook-App öffnen
Die bisher genannten Apple-Apps sind alle auf jedem iPhone vorhanden, was bei der offiziellen Facebook-App nicht der Fall ist. Allerdings ist die Wahrscheinlichkeit sehr hoch, dass ein Nutzer diese installiert hat, wenn er Facebook nutzt. Das passende URL-Schema für Facebook lautet fb://
und ist sehr umfangreich (und Facebook-typisch scheinbar nicht wirklich dokumentiert…). So öffnet fb://profile
beispielsweise das Profil des Nutzers, fb://friends
die Freundeliste oder fb://feed
die aktuellen Neuigkeiten.
Interessant dürfte sicher die Frage sein, wie man einen bestimmten Nutzer (z.B. eine Fanpage) öffnet? Ganz einfach: Man öffnet seine Fanpage im Browser und ersetzt das www
durch graph
(z.B. http://graph.facebook.com/dm.Deutschland
). Schon sieht man die User-ID, die man für das Schema fb://profile/[userid]/wall
benötigt (fb://profile/129724513733284/wall
).
Bei Details empfehle ich diese sehr umfangreiche Übersicht der Facebok-URL-Schemes, die knapp 200 Einträge enthält.
Quellen und Links
Link: Apple URL Scheme Reference
Link: iPhoneIntegration (Sample Code)
Link: Making a Phone Number clickable for iPhone Users
Link: Launching Your Own Application via a Custom URL Scheme
Link: IPhone URL Schemes
Würde mich interessieren ob es auch zum Öffnen in Safari einen so einfachen Befehl gibt wie zum Öffnen von Te. oder SMS
<a href="tel:01234-123456">…</a>
also z. B.
<a href="safari:http://www.1234.de">…</a>
Könnte ich gebrauchen um in einer App-Seite die in html angelegt ist externe Links gezielt in Safari statt in der App zu öffnen
Wenn du in einer nativen App programmierst, müsste du das eigentlich über direkt über die WebView regeln können, wie sich z.B. externe Links verhalten sollen.
Da ich die App bei appmakr.com anlege, geht das nicht. Ich erstelle die Seite als homepage und die wird dann im internen Browser gezeigt, bei externen Links kommt man dann aber nicht mehr zurück, landet quasi in der Sackgasse…, daher fehlt mir so ein html-Befehl der den Link sicher in Safari öffnet.
<a href="safari:http://www.1234.de">…</a>
…hab ich probiert, das geht definitiv nicht, anscheinend auch nicht mit googlechrome
…navigon > da wird die entsprechende App geöffnet…
… mhh, dann fällt mir leider nichts dazu ein. Ich würde es dann mal über den Support des App-Herstellers versuchen.
Google Chrome habe ich noch mal versucht, so geht`s:
<a href="googlechrome://abcd.de">abcd</a>
…das http war zu viel!
Adresse an Google maps übergeben geht auch:
<a href="googlemaps://maps.google.com/maps?q=strasse+ort+deutschland" Adresse</a>
An Navigon kriege ich die Adresse aber leider nicht übergeben, mit
<a href="navigon://
wird Navigon zwar gestartet, aber wie die Adresse übergeben werden kann, habe ich noch nicht rausgefunden…
hat da einer eine Idee? so wie bei google maps geht´s jedenfalls nicht
gefunden bei
http://wiki.akosma.com/IPhone_URL_Schemes#Navigon
navigon://-|-|CHE|8052|Z=C3=9CRICH|KATZENBACHSTRASSE|51|-|-|***|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
Link kopieren und anpassen, funktioniert!
hier abgebildet CHE = Schweiz (DEU = Deutschland)
dann |PLZ|ORT|STRASSE|NR|