Android Intents met Chrome

U kunt apps rechtstreeks vanaf een webpagina starten op een Android-apparaat met een Android Intent . U kunt een gebruikersgebaar implementeren om de app te starten met een aangepast schema of de intent: syntaxis.

Maak een intentie-anker en sluit dit in een pagina in, zodat de gebruiker ervoor kan kiezen de app te starten. Dit biedt flexibiliteit voor hoe en wanneer apps worden gestart, wat betekent dat u met Intent Extras informatie aan de app kunt doorgeven.

De basissyntaxis voor een op intentie gebaseerde URI is als volgt:

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

Raadpleeg de Android-broncode voor parseerdetails.

Wanneer een intentie niet wordt opgelost of een externe toepassing niet wordt gestart, kan de gebruiker worden omgeleid naar de reserve-URL. U kunt een reserve-URL opgeven met een Intent Extra:

S.browser_fallback_url=[encoded_full_url]

Gebruik S.<name> definieer Intent Extras. Deze specifieke extra is achterwaarts compatibel. Chrome verwijdert browser_fallback_url zodat de doel-app deze waarde niet ziet.

Chrome start geen externe applicatie in de volgende gevallen:

  • De intentie kan niet worden opgelost. Met andere woorden: geen enkele app kan de bedoeling aan.
  • Een JavaScript-timer probeerde een applicatie te openen zonder een gebruikersgebaar.

Voorbeelden

Hier is een intentie waarmee de Zxing barcodescanner-app wordt gestart:

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

Om de Zxing barcodescanner-app te starten, codeert u uw href op het anker:

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

Zie het Android Zxing Manifest , waarin het pakket en de host worden gedefinieerd.

Wanneer een reserve-URL is opgegeven, ziet de volledige URL er als volgt uit:

   <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>

Nu stuurt de URL gebruikers naar zxing.org als de app niet kan worden gevonden, wordt de link geactiveerd door JavaScript zonder gebruikersgebaar, of in andere gevallen waarin we geen externe applicatie starten.

Overwegingen

Als u een Android-activiteit aanroept met een intentie die Extra's bevat, kunt u deze details ook opnemen.

Alleen activiteiten met het categoriefilter android.intent.category.BROWSABLE kunnen met deze methode worden aangeroepen, omdat dit aangeeft dat de applicatie veilig vanuit de browser kan worden geopend.

Chrome start geen externe app voor een bepaalde intentie-URI als:

  • De Intent-URI wordt omgeleid vanaf een getypte URL;
  • De Intent-URI wordt gestart zonder gebruikersgebaar.