Intencje Androida w Chrome

Na urządzeniu z Androidem możesz uruchamiać aplikacje bezpośrednio z poziomu strony internetowej za pomocą intencji Androida. Możesz zaimplementować gest użytkownika, aby uruchomić aplikację za pomocą niestandardowego schematu lub użyć składni intent:.

Utwórz kotwicę intencji i umieścić ją na stronie, aby użytkownik mógł zdecydować, czy chce uruchomić aplikację. Dzięki temu możesz określić sposób i czas uruchamiania aplikacji, co oznacza, że możesz przekazywać informacje do aplikacji za pomocą dodatkowych informacji o intencji.

Podstawowa składnia identyfikatora URI na podstawie intencji:

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

Szczegółowe informacje o parsowaniu znajdziesz w kodzie źródłowym Androida.

Gdy intencja nie zostanie rozpatrzona lub nie uruchomi się aplikacja zewnętrzna, użytkownik może zostać przekierowany na zastępczy URL. Zastępczy URL możesz podać za pomocą rozszerzenia intencji:

S.browser_fallback_url=[encoded_full_url]

Użyj S.<name>, aby zdefiniować dodatkowe informacje o intencji. Ta dodatkowa funkcja jest zgodna wstecznie. Chrome usuwa browser_fallback_url, więc aplikacja docelowa nie widzi tej wartości.

Chrome nie uruchomi aplikacji zewnętrznej w tych sytuacjach:

  • Nie udało się zinterpretować intencji. Innymi słowy, żadna aplikacja nie może obsłużyć tej intencji.
  • Timer JavaScript próbował otworzyć aplikację bez interakcji użytkownika.

Przykłady

Oto intencja uruchamiająca aplikację Zxing Barcode Scanner:

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

Aby uruchomić aplikację Zxing do skanowania kodów kreskowych, zakoduj href na kotwicy:

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

Zapoznaj się z plikiem manifestu Androida Zxing, który definiuje pakiet i hosta.

Gdy jest podany zastępczy adres URL, pełny adres URL wygląda tak:

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

Teraz adres URL przekierowuje użytkowników do zxing.org, jeśli nie można znaleźć aplikacji, link jest wywoływany przez JavaScript bez działania użytkownika lub w innych przypadkach, gdy nie uruchamiamy aplikacji zewnętrznej.

Uwagi

Jeśli wywołasz czynność Androida za pomocą intencjonalnego wywołania, które zawiera dodatkowe informacje, możesz też uwzględnić te szczegóły.

Za pomocą tej metody można wywoływać tylko aktywności z filtrem kategorii android.intent.category.BROWSABLE, ponieważ wskazuje on, że aplikacja jest bezpieczna do otwarcia z przeglądarki.

Chrome nie uruchomi aplikacji zewnętrznej dla danego identyfikatora URI intencji, jeśli:

  • Identyfikator URI intencji jest przekierowywany z wpisanego adresu URL;
  • URI intencyjny jest inicjowany bez gestu użytkownika.