Android Intents mit Chrome

Mit einem Android-Intent können Sie Apps direkt über eine Webseite auf einem Android-Gerät starten. Du kannst 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 entscheiden, wie und wann Apps gestartet werden. Sie können also mit Intent Extras Informationen an die App übergeben.

Die grundlegende Syntax für einen Intent-basierten URI lautet wie folgt:

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

Weitere Informationen zum Parsen finden Sie im Android-Quellcode.

Wenn ein Intent nicht aufgelöst wird 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. Dieses Extra ist abwärtskompatibel. Chrome entfernt browser_fallback_url, sodass dieser Wert nicht an die Ziel-App gesendet wird.

In den folgenden Fällen startet Chrome keine externe Anwendung:

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

Beispiele

Hier ist eine Intent, die die Barcode-Scanner App „ZXing“ startet:

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

Wenn Sie die Barcode-Scanner App ZXing starten möchten, codieren Sie Ihre href auf dem Anker:

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

Weitere Informationen finden Sie im Android Zxing Manifest, in dem das Paket und der Host definiert werden.

Wenn eine Fallback-URL angegeben ist, 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>

Die URL leitet Nutzer jetzt an zxing.org weiter, wenn die App nicht gefunden wird, der Link durch JavaScript ohne Nutzergeste ausgelöst wird oder in anderen Fällen, in denen keine externe Anwendung gestartet wird.

Hinweise

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, da dies angibt, dass die Anwendung sicher über den Browser geöffnet werden kann.

Chrome startet keine externe App für eine bestimmte Intent-URI, wenn:

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