문은 애셋 링크 사양에 정의된 대로 주 구성원의 잘 알려진 위치에 있는 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/ (포트가 일치하지 않음)
앱 타겟
앱의 경우 대상의 인증서 해시 및 패키지 이름은 애플리케이션과 정확히 일치해야 합니다.