URL-схема для Chute iOS, Chute tvOS, Chute Mac и Chute Android
Chute iOS (начиная с версии 1.0.2) и Chute tvOS поддерживают следующие действия и одну опцию.
Chute Mac регистрирует ту же схему chute, но отвечает только на два глагола — install-config и import, — в форме как хоста, так и пути: chute://import?url=... и chute:///install-config?url=.... Значение url= должно быть адресом http или https либо ссылкой для обмена (ss://, vmess://, …); всё прочее отклоняется. Chute Mac спрашивает подтверждение, прежде чем что-либо загружать, а затем передаёт адрес вкладке Профили главного окна, которая его импортирует: нативный профиль сохраняется как управляемая конфигурация с интервалом обновления 24 часа, профиль Clash или sing-box преобразуется и сохраняется статическим снимком, а ссылка для обмена — или подписка, возвращающая список таких ссылок, — преобразуется в профиль. start, stop, toggle и tv действиями Mac не являются.
Chute Android обрабатывает ссылки импорта, описанные в конце этой страницы.
Действие:
start | connect | on
Запустить с выбранной конфигурацией.
Пример:
chute://startchute:///startstop | disconnect | off
Остановить текущую сессию.
toggle | switch
Запустить или остановить с выбранной конфигурацией.
tv (только Chute iOS)
Открыть представление импорта удалённой конфигурации с указанным URL конфигурации. Это действие доступно только в Chute iOS; Chute tvOS обрабатывает только start/stop/toggle.
В отличие от прочих действий,
tvсопоставляется только с хостом, поэтому форма с путёмchute:///tv?url=...не делает ничего.Пример:
chute://tv?url=https://example.com/chute.conf
Опция:
autoclose=true
Автоматически закрыть Chute после завершения действия. Только Chute iOS: Chute tvOS принимает параметр и игнорирует его, приложение остаётся открытым.
Пример:
chute:///toggle?autoclose=true
Внимание: в Chute iOS обрабатывается только первый URL одной активации, поэтому быстрая команда (Shortcuts), передающая Chute сразу несколько URL
chute://, выполнит лишь один из них.
x-callback-url
Chute поддерживает спецификацию x-callback-url. Схема URL — 'chute', доступные действия — 'start', 'stop' и 'toggle'.
x-success и x-error должны быть обёрнуты в двойные фигурные скобки, ровно как в примере ниже. Значение, записанное без них, читается как пустое, и никакой обратный вызов не открывается. x-cancel не обрабатывается.
Пример: chute://x-callback-url/start?x-success={{ "{{sms://}}" }}&x-error={{ "{{tel://}}" }}
x-success открывается, как только Chute отработал переключатель. Он означает, что запрос выполнен, а не что туннель поднялся: неудавшийся запуск или отклонённый запрос VPN тоже заканчиваются x-success. x-error открывается, только когда start застаёт туннель уже работающим или stop — уже остановленным, после того как закрыто сообщающее об этом предупреждение; toggle его никогда не открывает. Если конфигурация не выбрана, не открывается ни один из обратных вызовов.
Chute Android
Chute Android открывает ссылки chute:// (и QR-коды с ними, отсканированные на странице Конфигурации или в мастере настройки) только для импорта:
chute://download?url=...(такжеimport,install-config) — один раз скачивает конфигурацию поurl. Нативный профиль сохраняется с заголовком#!MANAGED-CONFIG <url>, в котором нетinterval=; профиль Clash или sing-box преобразуется и сохраняется статическим снимком без такого заголовка.chute://subscribe?url=...— псевдонимdownload, а не подписка. Он идёт тем же одноразовым путём, и, поскольку в записанном им файле нетinterval=, приложение его никогда не обновляет. Для нативного профиля работающий движок всё же каждые 24 часа заново загружает URL и применяет новое содержимое в памяти, а следующий запуск снова читает файл, — см. Управляемая конфигурация. Чтобы Chute поддерживал подписку в актуальном состоянии, используйте в приложении Добавить подписку, где спрашивается интервал.chute://tv?url=...(такжеremote) — загружает удалённый репозиторий конфигураций поurl.
Конфигурация, которую добавляет ссылка, открытая извне приложения, — скачанная или выбранная в репозитории, открытом ссылкой tv, — не становится выбранной: Chute открывает страницу Конфигурации с отметкой Ожидание на ней, и выполняемой она становится, только когда вы нажмёте Готово, так что такая ссылка никогда не переключает конфигурацию, которую выполняет Chute.
Ссылка, открытая извне приложения, преобразует профиль Clash или sing-box так же, как Загрузка по URL на странице Конфигурации, — как и та же ссылка, отсканированная там через Загрузка по QR-коду или в мастере настройки. Нативный профиль как подписку сохраняет только мастер настройки: отсканированная там ссылка даёт конфигурацию, которую приложение обновляет каждые 86400 секунд, тогда как та же ссылка, открытая извне приложения, скачивает файл один раз, и приложение его никогда не обновляет.
start, stop и toggle на Android не являются URL-действиями. Приложения автоматизации используют вместо них широковещательные Intent: com.r3studio.chute.action.START_VPN, com.r3studio.chute.action.STOP_VPN и com.r3studio.chute.action.TOGGLE_VPN.
Широковещательное сообщение не может показать системный диалог согласия на VPN. Поэтому START_VPN молча отбрасывается, пока согласие ещё не дано, а TOGGLE_VPN вместо этого открывает Chute: нажмите там переключатель, чтобы дать согласие, — это нажатие заодно запускает туннель, — и дальше широковещательные сообщения работают. В режиме службы Локальный прокси согласия не требуется вовсе, и оба работают сразу.
Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.