Универсальные ссылки iOS: как исключить определенные пути из URL?

Я использую новую функцию универсальных ссылок в iOS, но хочу отключить определенные пути на моей домашней странице для этой функции.

Например: все URL-адреса, содержащие "_id_" и начальную страницу, но не http://example.com/testsite. из домена http://example.com должен быть открыт в моем приложении. Как я могу это решить?

Мой файл ассоциации сайта-приложения-яблока на сервере выглядит так:

{
"activitycontinuation": {
    "apps": [
        "ABCDEFGHIJ.com.example.ios"
    ]
},
"applinks": {
    "apps": [],
    "details": [
        {
            "appID": "ABCDEFGHIJ.com.example.ios",
            "paths": [
                "/",
                "*_id_*"
            ]
        }
    ]
}
}

Мой файл прав в приложении:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>activitycontinuation:example.com</string>
        <string>activitycontinuation:www.example.com</string>
        <string>activitycontinuation:m.example.com</string>
        <string>applinks:example.com</string>
        <string>applinks:www.example.com</string>
        <string>applinks:m.example.com</string>
    </array>
</dict>
</plist>

Я не нашел возможности исключить определенные пути. Как это осуществимо?


person stk    schedule 01.10.2015    source источник
comment
выше не работает? вы явно не исключаете http://example.com/testsite, но не похоже, что вы его включаете   -  person st.derrick    schedule 01.10.2015
comment
Нет, он открывает все на основе com.example. Проблема в том, что вы не можете ничего исключить из права приложения.   -  person stk    schedule 01.10.2015


Ответы (2)


Добавление к пути NOT исключает сопоставление этого пути. Пример -

{
"applinks": {
    "apps": [ ],
    "details": [
        {
            "appID": "{app_prefix}.{app_identifier}",
            "paths": [ "NOT /path/to/exclude"]
        }
    ]
}
}

Существует 3 способа определения путей:

Static: весь поддерживаемый путь жестко закодирован для идентификации конкретной ссылки, например. /static/terms
Wildcards: * можно использовать для соответствия динамическим путям, например. /books/* может соответствовать пути к странице любого автора. ? внутри определенных компонентов пути, например. книги/1? может использоваться для сопоставления любых книг, идентификатор которых начинается с 1.
Exclusions: Добавление пути НЕ исключает сопоставление этого пути.

Порядок, в котором пути упоминаются в массиве, важен. Более ранние индексы имеют более высокий приоритет. Как только путь совпадает, оценка останавливается, а другие пути игнорируются. Каждый путь чувствителен к регистру.


Справка

Как поддерживать универсальные ссылки в приложении iOS и настраивать для него сервер?

person Vineet Choudhary    schedule 07.03.2016

это сработает?

"paths": [
    "NOT http://example.com/testsite/*",
    "/",
    "*_id_*"
]

Изучив руководство, я должен помогите исключить этот конкретный путь.

Чтобы указать область, которая не должна обрабатываться как универсальная ссылка, добавьте «НЕ» (включая пробел после буквы «Т») в начало строки пути.

person Otra    schedule 16.12.2015