Android 인텐트를 사용하여 Android 기기의 웹페이지에서 직접 앱을 실행할 수 있습니다. 사용자 동작을 구현하여 맞춤 스키마로 앱을 실행하거나 intent:
문법을 사용할 수 있습니다.
사용자가 앱을 실행하도록 선택할 수 있도록 인텐트 앵커를 구성하고 페이지 내에 삽입합니다. 이렇게 하면 앱이 실행되는 방식과 시기를 유연하게 설정할 수 있으므로 인텐트 추가 항목을 사용하여 앱에 정보를 전달할 수 있습니다.
인텐트 기반 URI의 기본 구문은 다음과 같습니다.
intent:
HOST/URI-path // Optional host
#Intent;
package=\[string\];
action=\[string\];
category=\[string\];
component=\[string\];
scheme=\[string\];
end;
파싱 세부정보에 관해서는 Android 소스 코드를 참고하세요.
인텐트가 확인되지 않거나 외부 애플리케이션이 실행되지 않으면 사용자를 대체 URL로 리디렉션할 수 있습니다. 인텐트 추가 항목을 사용하여 대체 URL을 지정할 수 있습니다.
S.browser_fallback_url=[encoded_full_url]
S.<name>
를 사용하여 인텐트 추가 항목을 정의합니다. 이 특정 추가 항목은 이전 버전과 호환됩니다. 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 매니페스트를 참고하세요.
대체 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>
이제 앱을 찾을 수 없거나 사용자 동작 없이 JavaScript에 의해 링크가 트리거되거나 외부 애플리케이션을 실행하지 않는 경우 URL이 사용자를 zxing.org
로 보냅니다.
고려사항
Extras가 포함된 인텐트로 Android Activity를 호출하면 이러한 세부정보도 포함할 수 있습니다.
이 메서드는 카테고리 필터인 android.intent.category.BROWSABLE이 있는 활동만 호출할 수 있습니다. 이 메서드는 애플리케이션을 브라우저에서 열어도 안전하다는 것을 나타내기 때문입니다.
다음과 같은 경우 Chrome에서 지정된 인텐트 URI의 외부 앱을 실행하지 않습니다.
- 입력된 URL에서 인텐트 URI가 리디렉션됩니다.
- 인텐트 URI는 사용자 동작 없이 시작됩니다.