명령문 목록 만들기

문은 애셋 링크 사양에 정의된 대로 주 구성원의 잘 알려진 위치에 있는 JSON으로 인코딩된 문 목록에서 호스팅됩니다. 문 목록에는 하나 이상의 문이 포함되며 주 구성원에는 문 목록이 하나만 있을 수 있습니다.

문 목록 구문

문 목록 구문을 참고하세요.

명세서 목록 위치

명세서 목록은 주 구성원 유형 (명령어를 작성하는 웹사이트 또는 앱)에 따라 잘 알려진 위치에서 호스팅됩니다.

웹사이트 명세서 목록

웹사이트에서 명세서 목록은 다음 주소에 있는 텍스트 파일입니다.

scheme://domain/.well-known/assetlinks.json

.well-known 폴더 이름의 점을 확인합니다.

HTTP 200 이외의 서버에서 받은 응답은 오류로 처리되며 구문 목록이 비어 있게 됩니다. HTTPS의 경우 신뢰할 수 있는 루트 목록으로 확인할 수 있는 인증서 체인이 없는 연결의 경우 빈 문 목록이 생성됩니다.

다음은 웹사이트에 표시된 명세서 목록의 예입니다. http://example.digitalassetlinks.org/.well-known/assetlinks.json

Android 앱 문 목록

Android 앱에서 문 목록은 웹사이트 문 파일과 구문이 동일한 JSON 스니펫이지만, strings.xml 파일에 삽입되어 있으며, 아래와 같이 매니페스트에서 참조됩니다.

AndroidManifest.xml에서:

<manifest>
  <application>
    ...
    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    ...
  </application>
</manifest>

res/values/strings.xml에서 다음을 실행합니다.

<resources>
  ...
  <string name="asset_statements">
    ... statement list ...
  </string>
</resources>

다음은 앱과의 위치 공유를 지원하는 Android 앱의 res/values/strings.xml 스니펫입니다 (현재 지원되지 않는 Android 기능).

<resources>
    ...
    <string name="asset_statements">
      [{
        \"relation\": [\"delegate_permission/common.share_location\"],
        \"target\": {
          \"namespace\": \"web\",
          \"site\": \"https://example.com\"
        }
      }]
    </string>
</resources>

타겟 일치

모든 설명은 대상에 관한 것입니다. 문을 사용할 때는 문의 대상을 실제 항목과 비교해야 합니다. 문 대상이 항목과 일치하면 문이 적용됩니다. 대상이 특정 항목과 일치하는지 확인하는 규칙은 다음과 같습니다.

웹사이트 타겟

웹사이트의 경우 사이트 스키마, 호스트, 포트가 정확히 일치해야 합니다. HTTP와 HTTPS의 기본 포트 (각각 80 및 443)는 암시적으로 가정됩니다. 문 타겟이 http://www.example.com:80이면 웹사이트 http://www.example.com이 일치하는 것으로 간주됩니다.

다음 문

"target": {
  "namespace": "web",
  "site": "https://www.google.com"
}

다음 URI는 일치합니다.

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.co.kr/

다음 URL은 일치하지 않습니다.

  • http://www.google.com/(잘못된 스킴)
  • https://google.com/ (호스트 이름이 일치하지 않음)
  • https://www.google.com:444/ (포트가 일치하지 않음)

앱 타겟

앱의 경우 대상의 인증서 해시 및 패키지 이름은 애플리케이션과 정확히 일치해야 합니다.