Намерения Android с Chrome

Вы можете запускать приложения прямо с веб-страницы на устройстве Android с помощью Android Intent . Вы можете реализовать пользовательский жест для запуска приложения с помощью собственной схемы или использовать синтаксис intent:

Создайте привязку намерения и встройте ее на страницу, чтобы пользователь мог запустить приложение. Это обеспечивает гибкость в отношении того, как и когда запускаются приложения, а это означает, что вы можете передавать информацию в приложение с помощью Intent Extras .

Основной синтаксис URI на основе намерений следующий:

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

Подробности анализа см. в исходном коде Android .

Если намерение не разрешено или внешнее приложение не запускается, пользователь может быть перенаправлен на резервный URL-адрес. Вы можете указать резервный URL-адрес с помощью Intent Extra:

S.browser_fallback_url=[encoded_full_url]

Используйте S.<name> для определения Intent Extras. Это конкретное дополнение обратно совместимо. Chrome удаляет browser_fallback_url , поэтому целевое приложение не видит это значение.

Chrome не запустит внешнее приложение в следующих случаях:

  • Намерение не может быть решено. Другими словами, ни одно приложение не может справиться с намерением.
  • Таймер JavaScript попытался открыть приложение без жестов пользователя.

Примеры

Вот намерение, которое запускает приложение сканера штрих-кода Zxing:

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

Чтобы запустить приложение сканера штрих-кода Zxing, закодируйте свой href в якоре:

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

См. Android Zxing Manifest , в котором определяются пакет и хост.

Если указан резервный URL-адрес, полный URL-адрес выглядит следующим образом:

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

Теперь URL-адрес отправляет пользователей на zxing.org , если приложение не может быть найдено, ссылка активируется JavaScript без жестов пользователя или в других случаях, когда мы не запускаем внешнее приложение.

Соображения

Если вы вызываете активность Android с намерением, содержащим Extras , вы также можете включить эти данные.

С помощью этого метода можно вызывать только действия с фильтром категории android.intent.category.BROWSABLE , поскольку он указывает, что приложение можно безопасно открывать из браузера.

Chrome не запустит внешнее приложение для данного URI намерения, если:

  • URI намерения перенаправляется с введенного URL-адреса;
  • URI намерения инициируется без жестов пользователя.