В новой версии OSX 13 появилась возможность использовать команды. Это достаточно интересный инструмент который позволяет автоматизировать часто используемые функции. Кроме того он значительно расширяет возможность SIRI на iPhone. Но у многих пользователей возникает резонный вопрос как использовать команды в iPhone. На этот вопрос мы постараемся сейчас ответить в данной статье.
До релиза iOS 13 программа распространялась в App Store под названием «Быстрые команды», но в новой версии ОС она вошла в базовый набор приложений. На сайте Apple функциональность «Команд» описана весьма расплывчато и туманно: дескать, программа позволяет создавать «персонализированные шаблоны автоматизации, которые помогут вам выполнять повседневные действия проще и быстрее». Не знаю, кто обучил копирайтеров из Купертино излагать свои мысли подобным образом, но сдается мне, что в данном конкретном случае краткость в родственных отношениях с талантом явно не состоит.
Возможности команд iPhone
На самом деле программа «Команды в iPhone» умеет объединять несколько простых действий пользователя в одно. Например, если ты каждое утро узнаешь температуру окружающей среды за окном, включаешь на мобильном любимый трек, а затем отправляешь SMS-сообщение с пожеланием доброго дня своему начальнику, то всю эту рутину можно выполнять нажатием одной кнопки или голосовой командой. Приложение умеет работать с браузером Safari и другими программами iOS через API, поэтому подобным же образом нетрудно, например, подгрузить разные плей-листы в «Музыку» под настроение, установить или отключить будильник, применить фильтр к набору фотографий или отправить текущую геопозицию в ответ на сообщение друзей «Ну где тебя черти носят, пиво уже остыло!». «Команды» с этим справляются без особых проблем.
Интерфейс «Команд», судя по всему, разрабатывали инопланетяне, которых держат взаперти в подвалах кампуса Apple еще со времен старины Джобса. Но после небольшой практики привыкнуть к нему все-таки можно. Логика работы программы на первый взгляд очень проста: нужно указать действие, которое ты хочешь выполнить, а потом передать это действие в приложение и обработать полученный результат. Например, выбрав в списке приложений «Калькулятор», мы получим перечень возможных действий с ним — «Сосчитать», «Округлить число» и так далее. Для раздела «Интернет» действия будут иными: «Показать веб-страницу», «Открыть несколько URL», причем тут собраны варианты не только для Safari, но и для других приложений. Помедитировав с полчаса на этот список, можно даже отыскать в нем какую-то логику.
Вкладка «Автоматизация» в нижней части окна «Команд» позволяет привязать выполнение команды к определенному условию. Например, запланировать на выбранное время (наконец-то в iOS появился аналог cron и «Планировщика задач», внедренного парнями из Microsoft еще в Windows 98). Но существуют и менее очевидные триггеры: прибытие в какую-то географическую точку по данным GPS или убытие из нее, переключение режима работы телефона или запуск программы. Например, можно настроить автоматическое выполнение команды при выходе из дома, приезде на работу или в момент, когда айфон переключается в режим пониженного энергопотребления.
Одна из самых любопытных, на мой взгляд, фишек «Команд» — наличие в арсенале программы простого набора переключателей, с помощью которых можно настраивать триггеры еще более гибко. Прячутся они под значком «Скрипты» в разделе «Логика управления» (кто найдет с первого раза — тому конфетка!). Здесь нам предлагается набор логических операторов вида «если — иначе — закончить действие», «повторить», «ожидать возврата». То есть с помощью этого инструмента можно написать несложный скрипт, отрабатывающий какой-то примитивный алгоритм. Негусто, конечно, но на безрыбье и червяк — Python.
«Команды» позволяют программировать действия не только для встроенных приложений iOS 13, но и для некоторых сторонних приложений, установленных на твоем устройстве. Например, если ты используешь какую-нибудь программу для чтения лент новостей в формате RSS, можно создать команду, которая станет искать адрес RSS-канала на открытом в Safari сайте и при обнаружении автоматически подпишется на него.
Готовую команду можно добавить в список внутри самого приложения или вывести в виде ярлыка на домашний экран iOS. И на этом можно было бы закончить наш сегодняшний обзор, если бы статья предназначалась для публикации в журнале «Мурзилка». Но поскольку наше издание называется немного иначе, давай посмотрим, как это работает и можно ли вытащить из «Команд» что-нибудь интересное и недокументированное, а потом использовать нестандартным образом.
Как использовать команды в iPhone
«Команды в iPhone» работают с API операционной системы, а именно позволяют принимать на вход различные параметры и динамический ввод. Эти параметры могут обрабатываться приложениями iOS в фоновом режиме, то есть без необходимости запуска, а результат передается в саму программу «Команды» или в Siri. В этом и кроется основное отличие обновленных «Команд» от механизма ярлыков Siri, реализованного в iOS 12, — команды больше не представляют собой фиксированную последовательность действий, они обрели некую интерактивность. То есть если раньше интерфейс взаимодействия операционной системы и приложений строился на механизме x-callback-url на уровне самой iOS, то теперь все действия обрабатываются приложением «Команды» или Siri, в зависимости от того, что это за команда. С точки зрения безопасности такой подход более продуктивен и предоставляет как программистам, так и пользователю больше возможностей.
X-callback-url — это схема взаимодействия приложений в iOS, обмена информацией и параметрами между ними. Подробную спецификацию этого стандарта можно отыскать здесь.
Про фоновый режим я упомянул неспроста. Поясню этот механизм на простом примере. Положим, ты решил автоматизировать какие-то процессы на своем iPhone или iPad с помощью языка JavaScript, для чего используешь специальную программу для iOS Scriptable. Эта программа позволяет писать, отлаживать и запускать сценарии на JavaScript, а также содержит подробный справочник по языку с описанием функций, поддерживаемых iOS. Ко всему прочему, она бесплатна.
Итак, ты подготовил несколько полезных скриптов, сохранил их в Scriptable, после чего решил создать команду для их выполнения при наступлении определенного условия, например по расписанию. Выбрав в программе «Команды в iPhone» вариант «Запустить скрипт», ты получишь список всех сохраненных в Scriptable скриптов, в котором можно указать нужный. При этом само приложение Scriptable не запускается — программа «Команды» запрашивает из него требуемые данные в фоновом режиме. Кроме того, в самом интерфейсе окна «Команды в iPhone» есть специальный переключатель, с помощью которого можно настроить заранее, как отработает скрипт: в запустившейся при его вызове программе Scriptable или в фоновом режиме. Здорово, правда?
Неочевидный, но интересный хак: с помощью Scriptable можно кастомизировать сообщения об ошибках при выполнении сценариев JavaScript. Это довольно удобно, особенно на этапе отладки скриптов.
На уровне пользователя «Команды» представляют собой набор редактируемых полей в контексте функций приложения, в которые можно передавать те или иные данные — значения или переменные. Когда команда срабатывает, она получает данные из полей, обрабатывает их по выбранному пользователем алгоритму и возвращает результат, который можно сохранить или куда-нибудь переслать. Очевидно также, что «Команды» способны полноценно взаимодействовать только с теми приложениями iOS 13, разработчики которых предусмотрели такую возможность.
«Команды» могут работать с различными типами данных — это числовые значения, текст, URL, содержимое буфера обмена, файлы. Кроме того, разработчик может предусмотреть в своем приложении поддержку собственных типов данных и параметров, которые способна обработать программа «Команды».
Примечательно, что в iOS 12 ярлыки Siri не могли полноценно использовать вводимые пользователем данные: если голосовая команда требовала ввести что-то с клавиатуры или выбрать опцию из списка, выполнение команды прерывалось и запускалось соответствующее приложение. При этом от пользователя ожидалось нужное действие или соответствующая команда, отданная голосом. С интеграцией в iOS программы «Команды» все изменилось: если при выполнении алгоритма требуется взаимодействие с пользователем, оно идет на уровне приложения без прерывания основного сценария. А сама программа «Команды» интегрирована с языковой средой Siri и поддерживает голосовое управление. Например, если команда вызывается в Siri и подразумевает ввод текста, то этот текст можно надиктовать.
Таким образом, функциональность «Команд» отнюдь не ограничивается набором инструментов самой этой программы. Можно смело сказать, что он не ограничивается вообще ничем: ничто не мешает тебе собрать на iPhone нужный набор приложений конкретно под твои задачи, а потом брать данные из одной программы, преобразовывать их в другом приложении и передавать в третье с помощью инструментария «Команд».
Скажем, можно получить текущие курсы валют из интернета, сравнить их стоимость с помощью программы, умеющей работать с таким типом данных (например, для этой цели подойдет калькулятор PCalc), а потом передать результат вычислений в «Заметки» или отправить их сообщением в телеграм. Можно настроить команду таким образом, что она будет автоматически обновлять курсы валют при каждом подключении к интернету или ежедневно в заданное время.
Установив на телефон FTP-клиент, ты можешь автоматизировать загрузку файлов на сервер, просмотр содержимого серверной папки, перезапись файлов при их изменении и многое другое. Можно получать данные о погоде в твоем текущем местоположении или в заданной географической точке, копировать их в буфер обмена и дальше делать с ними что-нибудь полезное. Причем географическую точку, для которой ты определяешь погоду, необязательно вводить вручную — ее можно получить, скажем, в качестве входного параметра из события, записанного в «Календаре». И это только пара очевидных примеров. Все остальное ограничено только твоей фантазией.
ЛайфHack для использования команд iPhone
Несмотря на то что приложение «Команды в iPhone» использует собственную идеологию выполнения заданной пользователем последовательности действий, старые добрые принципы x-callback-url никуда не делись и по-прежнему в полной мере поддерживаются приложением. На эту особенность обратил внимание технический специалист и исследователь iOS Федерико Витиччи. Он выяснил, что с помощью специальных URL можно обращаться не только к интернет-ресурсам, но и к системному приложению «Настройки», точнее — к каждому отдельному экрану и даже определенным функциям.
Смысл этого трюка достаточно прост. Некоторые элементы управления iOS зарыты в приложении «Настройки» довольно глубоко, и добраться до них можно, лишь совершив длительное путешествие по нескольким сменяющим друг друга экранам. А можно поступить проще: создать в приложении «Команды» специальный ярлык с адресом нужной тебе настройки и сохранить ее в виде значка на экране телефона. В любой момент ты сможешь получить к ней доступ одним касанием. Удобно? Да не то слово!
У Apple отсутствует документация на этот счет, поэтому Витиччи, по его словам, потратил несколько дней на подбор соответствующих параметров вручную методом проб и ошибок. Мы не станем повторять этот эксперимент и воспользуемся его наработками — с огромной благодарностью к исследователю.
Итак, все команды, открывающие доступ к приложению «Настройки» и его компонентам, начинаются с префикса prefs:root=
. Давай разберем простой пример такой команды. Я очень часто пользуюсь на своем айфоне режимом модема — иногда нужно раздать интернет навигатору в автомобиле, чтобы он показал мне пробки и дорожную обстановку, или ноутбуку, на котором я работаю вдали от дома. Но чтобы добраться до этой функции, необходимо запустить программу «Настройки» и перейти в раздел «Режим модема», то есть совершить два действия. Создадим ярлык, который откроет эту настройку в одно касание.
Запусти «Команды» и нажми в окне программы на кнопку «Создать команду». Нажми «Добавить действие», а затем коснись значка «Интернет». Промотай список вниз и выбери в нем пункт «URL-адрес». В панели «URL-адрес» нажми на поле apple.com
и введи вместо этого строку prefs:root=INTERNET_TETHERING
. Мы создали переменную, хранящую вместо URL-адреса команду настроек, — теперь нужно передать эту переменную в приложение, которое ее обработает.
Нажми кнопку + ниже, снова выбери «Интернет», в открывшемся списке отыщи раздел Safari и выбери в нем «Открыть несколько URL». Эта команда автоматически подцепит адрес из предыдущей строки, ничего менять не нужно. Удивительно, но факт: если мы просто вобьем строку prefs:root=INTERNET_TETHERING
в команду Safari → «Открыть несколько URL», система не сможет ее правильно обработать.
Нажми «Далее» и введи произвольное название команды, например Hotspot
, — одноименная плитка появится в окне приложения «Команды». Остался последний шаг: нажми и удерживай плитку, выбери в появившемся контекстном меню пункт «Подробнее», а потом нажми ссылку «Добавить на экран домой» и подтверди действие нажатием на надпись «Добавить». Значок Hotspot
появится среди других значков приложений на экране iOS. Теперь ты можешь открыть настройку режима модема одним касанием.
Под этой статьей имеется ссылка на веб-страницу, в которой собраны все «волшебные URL», обнаруженные Федерико Витиччи. В этом списке ты можешь найти те команды настройки iOS, которые тебе нужны, и создать для каждой из них значок быстрого запуска.
Выводы
Возможности приложения «Команды в iPhone» пока еще до конца не изучены, но уже сейчас понятно, что они весьма широки: с его помощью можно создавать произвольные последовательности действий с программами, обрабатывать данные, а также запускать эти алгоритмы по расписанию или в зависимости от условий. С помощью JavaScript или Python можно еще больше автоматизировать работу в iOS 13, о чем мы обязательно расскажем подробнее в наших следующих статьях.
Даже в базовой конфигурации «Команды» позволяют проделывать с айфоном или айпадом множество интересных трюков. Если ты придумаешь нетривиальное применение этому приложению, не забудь поделиться своим опытом с нашими читателями!
4 comments On Как использовать команды в iPhone
Здорово! Команда очень кстати. Не могли бы Вы подсказать как сделать команду на включение/выключение LTE. Заранее признателен! Сам никак не могу разобраться.
А где же ссылка на страницу Федерико Витичча?
Как вариант могли бы в своем коментарии добавить….
Здравствуйте. Можно ли в ios 13 запускать команды автоматически без ручного подтверждения? Пока я вижу, что при срабатывании триггера приходит уведомление с предложением запустить команду. Но как запускать команды автоматически без подтверждения?