Android Intents mit Chrome

Mit einem Android-Intent können Sie Apps direkt von einer Webseite auf einem Android-Gerät starten. Sie können eine Nutzergeste implementieren, um die App mit einem benutzerdefinierten Schema zu starten, oder die Syntax intent: verwenden.

Erstellen Sie einen Intent-Anker und betten Sie ihn in eine Seite ein, damit der Nutzer die App starten kann. So können Sie flexibel festlegen, wie und wann Apps gestartet werden. Sie können also Informationen mit Intent-Extras an die App weitergeben.

Die grundlegende Syntax für einen absichtsbasierten URI sieht so aus:

intent:  
   HOST/URI-path // Optional host  
   #Intent;  
      package=\[string\];  
      action=\[string\];  
      category=\[string\];  
      component=\[string\];  
      scheme=\[string\];  
   end;

Details zum Parsen finden Sie im Android-Quellcode.

Wenn ein Intent nicht aufgelöst oder eine externe Anwendung nicht gestartet wird, kann der Nutzer zur Fallback-URL weitergeleitet werden. Sie können eine Fallback-URL mit einem Intent Extra angeben:

S.browser_fallback_url=[encoded_full_url]

Verwenden Sie S.<name>, um Intent Extras zu definieren. Dieser Zusatz ist abwärtskompatibel. Chrome entfernt browser_fallback_url, sodass die Ziel-App diesen Wert nicht mehr erkennt.

In den folgenden Fällen startet Chrome keine externen Anwendungen:

  • Der Intent kann nicht aufgelöst werden. Mit anderen Worten: Keine App kann den Intent verarbeiten.
  • Ein JavaScript-Timer hat versucht, eine App ohne Nutzergeste zu öffnen.

Beispiele

Mit dem folgenden Intent wird die Zxing-App für Barcode-Scanner gestartet:

intent:  
   //scan/  
   #Intent;  
      package=com.google.zxing.client.android;  
      scheme=zxing;  
   end;

Codieren Sie href am Anker, um den Barcode-Scanner Zxing zu starten:

  <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">
    Take a QR code
  </a>

Siehe das Android Zxing-Manifest, das das Paket und den Host definiert.

Wenn eine Fallback-URL angegeben wird, sieht die vollständige URL so aus:

   <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
    Take a QR code
  </a>

Jetzt werden Nutzer über die URL zu zxing.org weitergeleitet, wenn die App nicht gefunden werden kann, der Link von JavaScript ohne Nutzergeste ausgelöst wird oder wenn keine externe App gestartet wird.

Wissenswertes

Wenn Sie eine Android-Aktivität mit einem Intent aufrufen, der Extras enthält, können Sie diese Details ebenfalls angeben.

Nur Aktivitäten mit dem Kategoriefilter android.intent.category.BROWSABLE können mit dieser Methode aufgerufen werden. Dies gibt an, dass die Anwendung sicher über den Browser geöffnet werden kann.

In folgenden Fällen startet Chrome keine externe App für einen bestimmten Intent-URI:

  • Der Intent-URI wird von einer eingegebenen URL weitergeleitet.
  • Der Intent-URI wird ohne Nutzergeste initiiert.