Chrome에서 Android 인텐트 사용

Android 기기의 웹페이지에서 직접 Android 인텐트. 사용자 동작을 구현하여 커스텀 스키마를 사용하거나 intent: 문법을 사용할 수 있습니다.

사용자가 선택할 수 있도록 인텐트 앵커를 구성하여 페이지 내에 삽입합니다. 앱을 실행합니다. 따라서 앱을 출시하는 방법과 시기를 즉, 인텐트 Extras를 사용하여 앱에 정보를 전달할 수 있습니다.

인텐트 기반 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>

이제 앱을 찾을 수 없는 경우 URL이 사용자를 zxing.org로 보냅니다. 링크는 사용자 동작 없이 JavaScript에 의해 트리거되거나 사용자가 실행할 수 있습니다.

고려사항

Extras가 포함된 인텐트로 Android 활동을 호출하면 이러한 세부정보도 포함할 수 있습니다.

카테고리 필터(android.intent.category.BROWSABLE)가 있는 활동만 는 애플리케이션이 안전함을 나타내므로 이 메서드를 사용하여 호출할 수 있습니다. 브라우저에서 열 수 있습니다.

다음과 같은 경우 Chrome은 주어진 인텐트 URI에 대해 외부 앱을 실행하지 않습니다.

  • 인텐트 URI가 입력된 URL에서 리디렉션됩니다.
  • 인텐트 URI가 사용자 동작 없이 시작됩니다.