URL-schema’s gebruiken in iOS-apps

Met URL-schema's (URL schemes) kunnen ontwikkelaars linken tussen apps op iPhone en iPad. Zo kun je bijvoorbeeld een andere app of een website openen, of tekst doorsturen naar een andere app.

Dit artikel is gearchiveerd en wordt niet meer bijgewerkt door iCulture.

WhatsApp en Launch Center Pro zijn populaire iOS-apps die gebruik maken van URL-schema’s. We gebruiken deze apps als voorbeeld hoe je met URL-schema’s in iOS kunt werken. Een ‘URL scheme’, zoals de Engelstalige naam luidt, wordt gebruikt om interactie tussen verschillende iOS-apps of online diensten mogelijk te maken. Met een URL-schema kun je vanuit de ene app een andere app openen en een bepaalde actie uitvoeren.

Update: URL-schema’s zijn in iOS 9 vervangen door Universal Links, omdat ze niet veilig zijn en problemen kunnen veroorzaken. Lees onderstaand artikel voor de huidige mogelijkheden om tussen apps te linken.

url scheme iosWe hebben gekozen voor WhatsApp en Launch Center Pro, omdat ze heel verschillend gebruikmaken van URL-schema’s. WhatsApp is een app die sinds juli 2013 URL-schema’s ondersteunt. Je kunt dit URL-schema gebruiken om met één druk op de knop een bepaalde boodschap aan een bepaalde persoon te sturen. Een URL-schema is in feite niet meer dan een klikbare link, die je ook in een website zou kunnen opnemen.

Maar een URL-schema komt pas echt tot z’n recht in de app Launch Center Pro. Daarmee kun je allerlei veelgebruikte acties automatiseren. Achter één knop gaan dan een reeks aan acties schuil. In Launch Center Pro maak je zelf knoppen aan, waar je een URL-schema achter verstopt. Dit kan dus ook het URL-schema van WhatsApp zijn, om snel een berichtje te kunnen openen.

URL-schema van WhatsApp

Het URL-schema van WhatsApp ziet er als volgt uit:

whatsapp://

Je kunt hier parameters achter plakken om bepaalde acties uit te voeren. Gebruik je bijvoorbeeld de parameter ‘text’, dan kun je een bepaalde tekst doorsturen naar het berichtenveld van de app. Met de parameter ‘abid’ kun je een bericht naar een specifiek contact sturen.

De letters ‘abid’ staan voor ‘Adress Book ID’ en het werkt als volgt. Stuur je een bericht naar dit ID en heeft deze persoon een telefoonnummer dat bij WhatsApp staat geregistreerd, dan zal een bericht aan deze contactpersoon worden aangemaakt. Heeft de persoon geen telefoonnummers gekoppeld aan WhatsApp, dan zal een contactenlijst verschijnen waaruit je de gewenste persoon kunt kiezen. Bij mensen met meerdere aan WhatsApp gekoppelde telefoonnummers krijg je een lijstje met de verschillende opties te zien.

whatsapp-op-iphoneEen voorbeeld maakt dit duidelijker. Je wilt een snelle manier hebben om de tekst ‘Hallo’ via WhatsApp te versturen. Dat doe je als volgt:

whatsapp://send?text=Hallo

Deze opdracht kun je bijvoorbeeld rechtstreeks in Launch Center Pro gebruiken. Je krijgt een contactenkiezer te zien, waaruit je de gewenste persoon kunt kiezen. Ook kun je in Launch Center Pro de volgende opdracht gebruiken:

whatsapp://send?text=[[prompt]]

Dit zorgt ervoor dat er een pop-up verschijnt waarin je meteen de tekst kunt tikken. Zoals op de website van WhatsApp te lezen is, ondersteunt het URL scheme van WhatsApp maar twee parameters: ‘abid’ en ‘text’. Als voorbeeld geven ze zelf:

whatsapp://send?text=Hello%2C%20World!

URL-schema’s in Launch Center Pro

De stappen hierboven kunnen we ook uitleggen met screenshots van de app Launch Center Pro.

  1. Open de app Launch Center Pro.
  2. Tik op het pennetje, rechtsboven in het scherm om de informatie op het scherm te bewerken.
  3. Tik op een leeg vakje (hierop is een plusteken te zien).
  4. Kies de optie Action.
  5. De Action Composer opent.
  6. launch center pro 1 launch center pro 2

  7. Kies de optie ‘Installed apps’.
  8. Uit de alfabetische lijst kies je ‘WhatsApp Messenger’.
  9. Voer de gewenste actie in, bijvoorbeeld ‘whatsapp://’ of ‘whatsapp://text=Hallo.
  10. Tik op de knop Done.
  11. Test de actie.

launch center pro 3launch center pro 4

Apps openen met URL-schema’s

URL-schema’s zijn vooral bedoeld als een makkelijke manier om apps te starten. Appontwikkelaars kunnen URL-schema’s ook gebruiken om vanuit de ene app een andere app te openen, dankzij HandleOpenURL. HandleOpenURL wordt ook gebruikt door onze iCulture-app. Ontwikkelaars kiezen dan een url-schema, zoals in ons geval iculture://. In apps als Launch Center Pro kun je dat url-schema gebruiken om vanuit deze launcherapp de iCulture-app aan te roepen. Je kunt soms ook variabelen meegeven aan een url-schema, als de ontvangende app dat ondersteunt, bijvoorbeeld tweetbot://mentions. Lang niet alle apps kunnen op deze manier worden gedetecteerd, omdat niet alle apps zo’n URL-scheme aanbieden of bekendmaken dat ze het ondersteunen.

Wanneer er twee apps zijn die hetzelfde URL-schema gebruiken, dan lost iOS dat automatisch op: er verschijnt een keuzelijstje waaruit je de gewenste app kunt kiezen. Apps met geregistreerde URL-schema’s kunnen overal vanuit iOS worden gebruikt om apps te openen, zoals in Mobile Safari. De mobiele browser op de iPhone is bovendien een handige plek om je URL-schema te testen. Meer over het uitwisselen van data tussen apps lees je in het artikel Data-uitwisseling tussen iOS-apps.

URL schemes van bekende apps opzoeken

Op de website handleOpenURL.com kun je een uitgebreide lijst vinden van bekende iOS-apps en hun URL-schema. Bijvoorbeeld:

tweetbot:///post?message=Hallo

Je kan op de website zoeken naar specifieke apps of naar bepaalde soorten apps, zoals Twitter-apps of wachtwoordapps. De veelgebruikte wachtwoordenapp 1Password ondersteunt bijvoorbeeld de URL-schema’s:

onepassword4://
onepassword4://search/Rabobank

De eerste opdracht opent gewoon de app 1Password. De tweede opdracht opent de app en toont alle items waarin het woord Rabobank voorkomt. Dat kan handig zijn voor mensen die regelmatig hun wachtwoorden voor internetbankieren opvragen. In plaats van ‘Rabobank’ kun je natuurlijk ook een willekeurige andere zoekterm invullen.

Custom URL schemes voor appontwikkelaars

Om een URL-type voor je app te registreren moet je als ontwikkelaar de CFBundleURLTypes-key opnemen in het info.plist bestand van je app. Het openen van een app vanuit een andere app met behulp van een URL is schematisch als volgt weer te geven (bron: Apple):

app open url

Suggestie hoe we dit artikel kunnen verbeteren? Laat het ons weten!

Informatie

Laatst bijgewerkt december 2015
Categorie Apps
Onderwerpen apps, url