안드로이드 앱링크 예제 - andeuloideu aeblingkeu yeje

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

사용자가 기기에서 링크를 따라갈 때는 보고 싶은 콘텐츠에 도달하려는 한 가지 목표를 염두에 두고 있습니다. 개발자는 앱 선택 대화상자(명확성 대화상자라고도 함)를 건너뛰고 앱에서 링크의 특정 콘텐츠로 사용자를 바로 연결하도록 Android 앱 링크를 설정할 수 있습니다. Android 앱 링크는 HTTP URL 및 웹사이트 연결을 활용하기 때문에 앱을 설치하지 않은 사용자는 개발자의 사이트에 있는 콘텐츠로 바로 연결됩니다.

딥 링크 및 Android 앱 링크

본격적으로 구현하기 전에 Android 앱에서 만들 수 있는 다양한 링크 유형(딥 링크, Android 앱 링크)을 이해하는 것이 중요합니다.

딥 링크는 사용자를 앱의 특정 콘텐츠로 바로 연결하는 URL입니다. Android에서 개발자는 인텐트 필터를 추가하고 수신 인텐트에서 데이터를 추출하여 딥 링크를 설정할 수 있고 이를 통해 올바른 활동으로 사용자를 안내합니다.

그러나 사용자의 기기에 설치된 다른 앱에서 동일한 인텐트를 처리할 수 있다면 사용자는 개발자의 앱으로 바로 이동하지 않을 수 있습니다. 예를 들어 은행 이메일의 URL을 클릭하면 사용자에게 링크를 열 때 브라우저를 사용할지 은행의 자체 앱을 사용할지 묻는 대화상자가 표시될 수 있습니다.

Android 6.0(API 수준 23) 이상의 Android 앱 링크를 사용하면 앱이 특정 유형의 링크에 적용되는 기본 핸들러로 앱 자체를 지정할 수 있습니다. 사용자는 앱을 기본 핸들러로 사용하지 않으려는 경우 기기의 시스템 설정에서 이 동작을 재정의할 수 있습니다.

Android 앱 링크의 이점은 다음과 같습니다.

  • 안전성 및 구체성: Android 앱 링크는 내가 소유한 웹사이트 도메인에 연결되는 HTTP URL을 사용하므로, 다른 앱이 내 링크를 사용할 수 없습니다. Android 앱 링크의 요구사항 중 하나는 Google의 웹사이트 연결 방법 중 하나를 통해 개발자의 도메인 소유권을 확인하는 것입니다.
  • 원활한 사용자 환경: Android 앱 링크는 웹사이트와 앱에 있는 동일한 콘텐츠에 단일 HTTP URL을 사용하므로 앱을 설치하지 않은 사용자는 앱이 아니라 웹사이트로 연결됩니다. 404 오류가 아닙니다.
  • Android 인스턴트 앱 지원: Android 인스턴트 앱을 통해 사용자는 Android 앱을 설치하지 않고도 실행할 수 있습니다. Android 앱에 인스턴트 앱 지원을 추가하려면 Android 앱 링크를 설정하고 g.co/InstantApps를 참조하세요.
  • Google 검색에서 사용자 참여: 사용자는 모바일 브라우저, Google 검색 앱, Android의 화면검색에서 Google이 제공한 URL을 클릭하거나 Google 어시스턴트를 통해 앱에서 곧바로 특정 콘텐츠를 엽니다.

Android 앱 링크 추가하기

Android 앱 링크를 만드는 단계는 일반적으로 다음과 같습니다.

  1. 앱의 특정 콘텐츠로 연결하는 딥 링크 만들기: 앱 매니페스트에서 웹사이트 URI의 인텐트 필터를 만들고 인텐트에서 얻은 데이터를 사용할 앱을 구성하여 사용자를 앱의 올바른 콘텐츠로 안내합니다. 앱 콘텐츠로 연결하는 딥 링크 만들기에서 자세히 알아보세요.
  2. 딥 링크의 인증 추가하기: 앱 링크 인증을 요청하도록 앱을 구성합니다. 그런 다음 Google Search Console을 통해 소유권을 확인하도록 디지털 애셋 링크 JSON 파일을 웹사이트에 게시합니다. 앱 링크 인증하기에서 자세히 알아보세요.

위 링크의 문서에서 설명하는 방법 대신 Android 스튜디오의 Android App Links Assistant라는 도구를 사용하면 Android 앱 링크를 만드는 데 필요한 단계를 하나하나 따라갈 수 있습니다.

자세한 내용은 다음 리소스를 참조하세요.

  • Android 스튜디오에서 Android 앱 링크 추가하기
  • 명령문 목록 만들기

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2022-10-05 UTC.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"필요한 정보가 없음" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"너무 복잡함/단계 수가 너무 많음" },{ "type": "thumb-down", "id": "outOfDate", "label":"오래됨" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"샘플/코드 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }]

  • 플랫폼
  • Android 스튜디오
  • Google Play
  • Jetpack
  • Kotlin
  • 문서
    • 개요
    • 가이드
    • 참조
    • 샘플
    • 디자인 및 품질
  • 게임

인스턴트 앱의 앱 링크 만들기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Android 인스턴트 앱은 설치하지 않고 실행되는 소규모 버전의 앱입니다. 사용자가 APK를 설치하는 대신 URL을 클릭하기만 하면 앱이 실행됩니다. 따라서 모든 인스턴트 앱은 Android 앱 링크를 사용하여 선언된 URL을 통해 액세스할 수 있어야 합니다. 이 페이지에서는 Android 인스턴트 앱에서 Android 앱 링크를 사용하는 방법을 설명합니다.

앱 링크 개요

먼저, 다음은 앱 링크에 관해 이미 알고 있어야 하는 사항의 요약입니다.

  • 사용자가 URL 링크를 사용하여 앱의 특정 화면으로 곧바로 이동할 수 있는 앱 활동의 인텐트 필터를 만든다면, 이것을 '딥 링크'라고 합니다. 하지만 다른 앱에서 URL 인텐트 필터를 선언할 수 있으므로 시스템에서 어떤 앱을 열지 사용자에게 물을 수 있습니다. 이러한 딥 링크를 만들려면 앱 콘텐츠의 딥 링크 만들기를 참조하세요.
  • 앱의 HTTP 딥 링크에 대응하는 assetlinks.json 파일을 웹사이트에 게시할 때는 앱이 이러한 URL의 실제 소유자인지 확인합니다. 이렇게 하여 Android 앱 링크는 딥 링크로 변환됐으며 사용자가 URL을 클릭할 때 즉각 앱이 열리도록 합니다. 앱 링크를 만들려면 Android 앱 링크 확인을 참조하세요.

따라서, Android 앱 링크는 웹사이트의 소유가 확인되어 사용자가 어느 앱을 열지 선택할 필요가 없는 HTTP 딥 링크입니다. 더 자세한 설명은 딥 링크와 앱 링크의 차이점을 참고하세요.

하지만 두 경우 모두, 사용자가 이미 앱을 설치한 상태여야 합니다. 사용자가 웹사이트의 링크 중 하나를 클릭하는 경우 앱이 설치되어 있지 않으면(그리고 다른 앱이 이 URL 인텐트를 처리하지 않으면) URL이 웹브라우저에서 열립니다. 인스턴트 앱을 만들면 이 부분이 해결됩니다. 즉, 사용자는 앱을 설치하지 않아도 URL을 클릭하기만 하면 앱을 열 수 있습니다.

최종 사용자가 Google에서 앱을 검색하면 Google 검색에서 '인스턴트' 배지와 함께 URL을 표시합니다.

인스턴트 앱용 앱 링크의 다른 점

이미 앱 콘텐츠의 딥 링크 만들기 및 Android 앱 링크 확인 가이드를 완료했다면 인스턴트 앱에서 앱 링크가 작동하도록 하는 데 필요한 대부분의 작업은 이미 완료한 것입니다. 다만 인스턴트 앱용 앱 링크를 사용할 때 몇 가지 추가 규칙이 있습니다.

  • 인스턴트 앱의 앱 링크로 사용되는 모든 인텐트 필터는 HTTP와 HTTPS를 모두 지원해야 합니다. 예를 들면 다음과 같습니다.

    <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" android:host="www.example.com" />
            <data android:scheme="https" />
        </intent-filter>
        

    <intent-filter> 요소에서 각 <data> 속성의 모든 조합이 유효하다고 간주하므로 두 번째 <data> 요소에 host를 포함할 필요는 없습니다(따라서, 이 인텐트 필터는 https://www.example.com이라고 결정함).

  • 웹사이트 도메인별로 인스턴트 앱을 하나씩만 선언할 수 있습니다. (웹사이트를 여러 앱과 연결할 수 있는, 설치 가능한 앱의 앱 링크를 만드는 경우와 다릅니다.)

앱 링크 작성 시 기타 고려사항

  • 인스턴트 앱의 모든 HTTP URL 인텐트 필터는 설치 가능한 앱에 포함되어야 합니다. 이는 사용자가 전체 앱을 설치하고 나면 URL을 탭할 때 항상 인스턴트 앱이 아닌 설치된 앱이 열리므로 중요합니다.
  • 인스턴트 앱과 설치 가능한 앱 모두 하나 이상의 인텐트 필터에 autoVerify="true"를 설정해야 합니다. (자동 확인 사용 설정 방법 참조)
  • HTTPS 프로토콜을 사용하여 앱 링크에서 지원하는 도메인(하위 도메인 포함)마다 하나의 assetlinks.json을 게시해야 합니다. (여러 호스트에서 앱 링크를 지원하는 방법 참조)
  • assetlinks.json 파일은 유효한 JSON으로 리디렉션 없이 제공되어야 하며 봇에 액세스 가능해야 합니다(robots.txt에서 /.well-known/assetlinks.json 크롤링을 허용해야 함).
  • 인텐트 필터의 호스트 속성에 와일드 카드를 사용하지 않는 것이 좋습니다. 여러 하위 도메인에서 앱 링크를 지원하는 방법을 참고하세요.
  • 맞춤 호스트/스키마 URL은 별도의 인텐트 필터를 사용해 선언해야 합니다.
  • 앱 링크 URL이 주요 검색어의 인기 검색결과에 나타나야 합니다.

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2022-10-05 UTC.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"필요한 정보가 없음" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"너무 복잡함/단계 수가 너무 많음" },{ "type": "thumb-down", "id": "outOfDate", "label":"오래됨" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"샘플/코드 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }]