Утверждения размещаются в списке утверждений в формате JSON в известном месте на основном объекте, как определено в спецификации Asset Links Specification . Список утверждений содержит одно или несколько утверждений, и у основного объекта может быть только один список утверждений.
Синтаксис списка операторов
См. синтаксис списка операторов .
местоположение списка выписок
Список выписок размещается в известном месте, которое зависит от типа субъекта (веб-сайт или приложение, предоставляющее выписки).
На веб-сайте размещены списки заявлений.
На веб-сайте список утверждений представляет собой текстовый файл, расположенный по следующему адресу:
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>
Пример
Вот пример фрагмента файла res/values/strings.xml для Android-приложения, поддерживающего обмен данными о местоположении с приложением (функция 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.com/
Следующие URL-адреса НЕ будут совпадать:
- http://www.google.com/ ( Неправильная схема )
- https://google.com/ ( Имя хоста не совпадает )
- https://www.google.com:444/ ( Порт не совпадает )
Целевые приложения
Для приложения хэш сертификата и имя пакета целевого объекта должны точно совпадать с данными приложения.