Intencje Androida w Chrome

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

Utwórz kotwicę intencji i umieść ją na stronie, aby użytkownik mógł zdecydować o uruchomieniu aplikacji. Zapewnia to elastyczność w zakresie sposobu i czasu uruchamiania aplikacji, a także przekazywania informacji do aplikacji za pomocą dodatków do intencji.

Podstawowa składnia identyfikatora URI opartego na intencji wygląda tak:

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

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

Jeśli intencja nie zostanie rozpoznana lub nie uruchamia się aplikacja zewnętrzna, użytkownik może zostać przekierowany na zastępczy URL. Zastępczy URL możesz określić za pomocą intencji dodatkowej:

S.browser_fallback_url=[encoded_full_url]

Użyj dodatków do definiowania intencji S.<name>. Ten dodatkowy dodatek jest kompatybilny wstecz. Chrome usuwa właściwość browser_fallback_url, więc docelowa aplikacja nie widzi tej wartości.

Chrome nie uruchamia aplikacji zewnętrznej w tych przypadkach:

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

Przykłady

Oto intencja powodująca uruchomienie aplikacji skanera kodów kreskowych Zxing:

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

Aby uruchomić aplikację skanera kodów kreskowych Zxing, zakoduj href w kotwicy:

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

Zobacz plik manifestu Android Zxing, który określa pakiet i hosta.

Po określeniu zastępczego adresu 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 kieruje użytkowników do strony zxing.org, jeśli nie można znaleźć aplikacji, link jest wyzwalany przez JavaScript bez gestu użytkownika lub w innych przypadkach, gdy nie uruchamiamy aplikacji zewnętrznej.

co należy wziąć pod uwagę

Jeśli wywołujesz aktywność na Androidzie z intencją zawierającą dodatkowe informacje, możesz też uwzględnić te szczegóły.

Za pomocą tej metody można wywoływać tylko działania z filtrem kategorii (android.intent.category.BROWSABLE), ponieważ wskazuje ona, że aplikację można bezpiecznie otworzyć w przeglądarce.

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

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