Вы можете запускать приложения прямо с веб-страницы на устройстве 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 намерения инициируется без жестов пользователя.