Глубокие ссылки
Используйте глубокие ссылки throne:// для добавления подписок и импорта профилей маршрутизации одним щелчком.
Throne регистрирует в вашей операционной системе собственную URL-схему throne://. Глубокая ссылка — это просто URL вида throne://, который указывает запущенному (или ещё не запущенному) экземпляру Throne выполнить действие — например, добавить подписку или импортировать профиль маршрутизации — без необходимости вручную вводить значения в диалоговых окнах.
Это удобно для сайтов провайдеров, страниц поддержки, QR-кодов, скриптов или просто для того, чтобы поделиться профилем маршрутизации с другом.
Каждая глубокая ссылка запрашивает подтверждение, прежде чем что-либо будет сохранено. Throne показывает, что именно будет добавлено, и ждёт вашего согласия, поэтому открытие ссылки никогда не сможет незаметно изменить вашу конфигурацию.
Как Throne получает глубокую ссылку
Схема throne:// регистрируется автоматически при первом запуске Throne в Windows, Linux и macOS. Поскольку Throne поставляется в виде переносимого архива без установщика, регистрация выполняется при запуске, не требует прав администратора и восстанавливается автоматически, если вы переместите или обновите папку приложения.
После регистрации Throne принимает глубокую ссылку из любого из этих источников:
- Щелчок по ссылке
throne://в браузере, мессенджере или документе — ОС передаёт её в Throne. - Вставка ссылки в главное окно с помощью
Ctrl+V. - Перетаскивание текста ссылки в главное окно.
Сервер(Server) →Добавить профиль из буфера обмена(Add profile from clipboard) — считывает ссылку из буфера обмена.- Передача в качестве аргумента запуска в командной строке (Windows/Linux).
Если Throne уже открыт, ссылка передаётся существующему окну, а не запускает второй экземпляр.
Справочник команд
Глубокая ссылка имеет вид:
throne://<command>/?<parameters>
Команда не зависит от регистра (throne://AddSub и throne://addsub — одно и то же), а завершающая косая черта перед ? необязательна. В настоящее время Throne поддерживает две команды.
| Команда | Назначение |
|---|---|
addsub | Добавить группу подписки и сразу обновить её |
route | Импортировать профиль маршрутизации |
Нераспознанная команда игнорируется и отмечается в журнале.
addsub — Добавление подписки
Добавляет новую группу подписки и сразу же обновляет её.
throne://addsub/?url=<subscription_url>&name=<group_name>&autoupdate=<value>
| Параметр | Обязательный | Описание |
|---|---|---|
url | Да | URL подписки. Должен быть в URL-кодировке (percent-encoding) — см. примечание ниже. Если он отсутствует, Throne покажет предупреждение и ничего не сделает. |
name | Нет | Имя новой группы. Если не указано, по умолчанию используется хост URL подписки. |
autoupdate | Нет | Будет ли группа обновляться автоматически. Значения 1, true, on или yes (без учёта регистра) включают обновление. При отсутствии параметра обновление включено по умолчанию. Любое другое значение отключает его. |
Пример
throne://addsub/?url=https%3A%2F%2Fexample.com%2Fsub%2Fabc123&name=My%20Provider&autoupdate=yes
Эта ссылка добавляет группу с именем My Provider для https://example.com/sub/abc123 с включённым автоматическим обновлением. Throne попросит подтверждение:
Добавить эту подписку? Имя: My Provider URL: https://example.com/sub/abc123 Автообновление: Вкл.
После подтверждения группа создаётся, и подписка загружается немедленно.
Всегда кодируйте значение
urlв URL-формате (percent-encoding). URL подписки содержит такие символы, как:,/,?и&, которые иначе будут восприняты как часть глубокой ссылки. Например,https://example.com/sub?id=1превращается вhttps%3A%2F%2Fexample.com%2Fsub%3Fid%3D1. То же касается пробелов и специальных символов вname(пробел становится%20).
route — Импорт профиля маршрутизации
Импортирует полный профиль маршрутизации (исходящее соединение по умолчанию и правила), содержащийся в ссылке.
throne://route?data=<base64>
| Параметр | Обязательный | Описание |
|---|---|---|
data | Да | Профиль маршрутизации, закодированный в Base64. Рекомендуется URL-безопасный Base64 (с дополнением или без него); стандартный Base64 также принимается. |
Как создать ссылку route
Обычно такие ссылки не создают вручную — Throne генерирует их за вас:
- Откройте
Маршруты(Routes) →Настройки маршрутизации(Routing Settings). - Выберите профиль маршрутизации, которым хотите поделиться.
- Нажмите
Ctrl+C(или используйте действие экспорта).
Throne скопирует в буфер обмена готовую ссылку throne://route?data=.... Отправьте её кому угодно; когда получатель откроет её (или вставит / воспользуется Добавить профиль из буфера обмена), Throne покажет имя профиля и все примечания, а затем импортирует его после подтверждения.
Что внутри data
Полезная нагрузка Base64 декодируется в небольшую JSON-обёртку, описывающую профиль:
{
"kind": "throne-route-profile",
"v": 1,
"name": "Bypass LAN",
"default_outbound": "proxy",
"rules": []
}
Таким образом, приведённая выше ссылка выглядит так (значение data — это Base64 этого JSON):
throne://route?data=eyJraW5kIjoidGhyb25lLXJvdXRlLXByb2ZpbGUiLCJ2IjoxLCJuYW1lIjoiQnlwYXNzIExBTiIsImRlZmF1bHRfb3V0Ym91bmQiOiJwcm94eSIsInJ1bGVzIjpbXX0
Throne также распознаёт эту же полезную нагрузку как обычный JSON или «голый» Base64 при импорте из буфера обмена, поэтому ссылка, скопированная с другого компьютера, работает, даже если по пути потеряет префикс
throne://route?data=.
Устранение неполадок
- Щелчок по ссылке ничего не делает / браузер спрашивает, какое приложение использовать. Запустите Throne один раз, чтобы он зарегистрировал схему, затем повторите попытку. Если вы переместили папку Throne, просто запустите его снова — регистрация восстанавливается при запуске.
- «Ignored deeplink with unknown command». Часть с командой — не
addsubи неroute. Проверьте написание слова сразу послеthrone://. - «The link did not contain a subscription URL». В ссылке
addsubотсутствует параметрurl, или после декодирования его значение оказалось пустым. - Подписка импортирует неверный адрес. Значение
urlне было закодировано в URL-формате, поэтому его часть была обрезана на символе?,&или#. Закодируйте значение и пересоберите ссылку.