Когда Apple перезапустила Workflow как Быстрые Команды в прошлом году и интегрировала его с Siri, было ясно, что и приложение Быстрые Команды, и платформа разработчика были первыми шагами к современному “языку скриптов”, способному взаимодействовать с приложениями и позволять пользователям напрямую взаимодействовать с Siri. Первая версия команд по-прежнему ограничивалась действиями сторонних приложений на основе URL-схем, и она не поддерживала взаимодействие пользователей в голосовом контексте Siri, но траектория Apple была ясна.
В iOS 13, компания Apple поставила на оба аспекта опыта использования: приложения могут отказаться от схемы URL (который в Apple назвали “небезопасной” на конференции WWDC) и предлагает команды, которые поддерживают ввод и вывод с помощью параметров в том, что фактически равносильно API команд, и команды будут полностью диалоговыми, а значит, что помимо того, что приложения “разговаривают” друг с другом путем обмена данными через действия, команды, которые требуют взаимодействия с пользователем может работать полностью в голосовом режиме Siri без необходимости запуска приложения команд.
Эта инициатива представляет собой уход от старого типа автоматизации, который был инициирован во времена x-callback-url, и в более широком плане подтверждает планы Apple по расширению Siri, которые были только частично озвучены в прошлом году: с помощью диалоговых команд действия сторонних приложений могут стать первоклассными функциями приложения Быстрые Команды и Siri, как если бы они были родными функциями обоих.
Параметры-это API команд, которые нужны Apple для ухода от URL-схем: это переменные, которые могут передавать динамический ввод в приложение через команду; приложение может выполнять выбранное действие в фоновом режиме (без запуска) и, в отличие от iOS 12, передавать результаты обратно в приложение команд или Siri. Действия с параметрами больше не являются фиксированными: они могут быть настроены Пользователем для выполнения различных команд, что обеспечивает большую гибкость, чем команды Siri в iOS 12, и более безопасную модель, чем старые действия X-callback-URL команд.
Параметры позволяют визуально настроить действие с помощью общих элементов интерфейса iOS.
Параметры принимают различные виды и формы в командах. Прежде всего, они являются редактируемыми полями внутри действий, которые позволяют настроить то, что делает команда, передавая ему определенные входные данные; они выглядят как синие пустые поля, которые можно выбрать из списка предварительно заполненных значений, ввести текст или ввести волшебную переменную. Когда команда запускается, она учтет параметры, которые вы заполнили, и выполнит соответствующее действие.
Параметры позволяют рассматривать действия как модульные компоненты, где каждая часть может быть настроена в соответствии с вашими потребностями – при условии, что разработчики создают поддержку для них в своих приложениях в iOS 13. Существуют различные варианты параметров: в дополнение к вышеупомянутым синим маркерам команда может включать переключатели включения/выключения для настройки определенных параметров; есть поддержка сегментированных элементов управления; разработчики могут даже создавать команды с дополнительными параметрами, которые принимают переменные определенных типов (например, текст или URL-адреса), а также файлы. Когда команда запускается, она «исполняет» все эти элементы, выполняет действие, не выходя из приложения команд или Siri (в зависимости от того, где вы его запускаете), и возвращает результаты.






На первый взгляд, команды с параметрами напоминают старые «визуальные действия», которые разработчики Быстрых Команд использовали при создании приложения на основе x-callback-URL, чтобы сделать их красивее и скрыть схемы URL, такие как от Things или Bear. Как и те действия, параметры позволяют визуально настраивать действие с помощью общих элементов интерфейса iOS, таких как текстовые поля и переключатели, при интеграции с системой волшебных переменных команд. Здесь давайте рассмотрим реальный пример из Things, который имел пользовательскую интеграцию с ярлыками в iOS 12 через URL-схемы и теперь поддерживает параметры iOS 13:

В то время как старые сторонние действия команд были фасадом взаимодействия и в конечном счете полагались на запуск схем URL для вызова действий внутри приложений, команды с параметрами выполняются полностью в приложении Быстрые Команды или Siri; они поставляются с собственной системой разрешений для запроса доступа к данным приложения; и, в отличие от схем URL, они могут возвращать различные типы результатов, такие как файлы, словари и даже пользовательские волшебные переменные. И самое главное: теперь их может создать любой разработчик.
Передача Входных Параметров
Используем некоторые фактические примеры, чтобы продемонстрировать эту функцию. Scriptable, JavaScript IDE от Simon Støvring для iOS, теперь предлагает действие «Запустить скрипт», который можно настроить с помощью параметров. Вы можете нажать на параметр ‘Script’, чтобы выбрать из предварительно заполненного списка ваших сценариев. В списке можно искать (новая опция для всех списков в iOS 13), поэтому вы можете выбрать сценарий для запуска при каждом выполнении действия; однако вы также можете выбрать «спрашивать каждый раз», и в этом случае команды или Siri попросят вас выбрать сценарий, который будет выполняться каждый раз, когда вы вызываете команду.

Обратите внимание, что список сценариев генерируется во время выполнения с помощью команды, который взаимодействует непосредственно со Scriptable в фоновом режиме, чтобы собрать список всех ваших сценариев в приложении.
Действие может поддерживать несколько параметров одновременно, и Scriptable использует это преимущество в значительной степени, позволяя передавать несколько объектов данных в сценарий. Можно запустить сценарий с основным входным параметром, но также можно назначить отдельные параметры для ввода текста, URL-адреса, изображения и файла. Кроме того, есть переключатель, чтобы определить, должен ли скрипт запускаться в приложении (запуск скрипта) или в фоновом режиме.

В iOS 12, Если вы хотите вызвать скрипт Scriptable и передать ему данные, вам нужно было либо запустить его через схему URL, записать по одному фрагменту данных в системный буфер обмена, либо запустить скрипт из Поделиться. Вы не сможете передать несколько rich-объектов от Siri или приложения Быстрые Команды. Параметры в Scriptable открывают новые возможности автоматизации, которые выходят далеко за рамки буфера обмена и схем URL; например, использование Scriptable с параметрами для добавления функций в команды, которые Apple не создавала, например, способ проверить, находится ли устройство в настоящее время в ландшафтном или темном режиме.

PCalc (749 руб.) Джеймса Томсона, одно из приложений, которое стало пионером идеи обходных путей буфера обмена для команд Siri в iOS 12, полностью охватило параметры в iOS 13, чтобы дать вам возможность выполнять вычисления, передавать входные числа и получать результаты полностью внутри команд и Siri. PCalc является одной из самых технически впечатляющих реализаций параметров, которые есть в настоящее время; как и Scriptable, он позволяет обогатить команды собственными функциями, не созданными Apple.

Как и в iOS 12, PCalc предлагает множество ярлыков для выполнения преобразований, установки значений регистров, запуска команд и функций и многое другое. В iOS 13 эти действия поддерживают параметры, поэтому вы можете настроить их изнутри PCalc (с помощью пользовательского интерфейса «добавить в Siri») или в приложении Быстрые Команды.

Конечно, все эти параметры можно выбрать во время выполнения (при запуске команды), вставляя «спрашивать каждый раз» в их поле. Есть даже переключатель, чтобы определить, должна ли команда обновлять курсы валют с подключением к интернету, когда он включен — вы получите точную и актуальную конвертацию между валютами. Поскольку первый параметр поддерживает ввод обычного текста пользователем, туда можно поместить любую переменную: вы можете ввести число и конвертировать его каждый раз, когда запускается команда; или, если вы хотите сделать его более динамичным, вы можете использовать числовой результат другого действия, такого как «запросить ввод», который позволит вам ввести значение с большой цифровой панелью при запуске команды. И как мы увидим немного позже, такие действия, как «запрашивать ввод», полностью интегрированы с разговорными способностями Siri, поэтому они автоматически преобразуются в голосовой ввод, когда вы запускаете их через голосового помощника.
Secure ShellFish, отличный SFTP-клиент Андерса Борума, который интегрируется с файлами, также принимает параметры с действиями для загрузки файлов на сервер, перечисляет содержимое каталога на сервере, загружает файлы и многое другое. Например, действие «Upload File» позволяет передать файл, созданный в команде, в качестве параметра, поддерживает выбор одного из существующих серверов из списка и имеет переключатель для перезаписи файла на сервере, если он уже существует.

Многие давно хотели, чтобы Apple добавила собственные действия для работы с FTP в команды. С помощью действий на основе параметров, предоставляемых Secure ShellFish, вы можете перестать ждать Apple, потому что приложение делает именно то, что нужно, и работает внутри команд, где оно может быть интегрировано с другими приложениями или собственными действиями Apple.
Действия на основе параметров являются троянским конем от Apple, чтобы принести больше собственных функций в команды через сторонние приложения.
Еще одним прекрасным примером этого является Esse, утилита для преобразования текста в различные форматы. В iOS 12 Esse заставлял вас настраивать отдельные команды Siri для каждого типа преобразования текста, что было громоздким и раздражающим, и он мог читать только текст, ранее скопированный в системный буфер обмена.

В iOS 13 приложение теперь предлагает действие «Transform Text» с параметрами для выбора типа преобразования и передачи текстовой строки для преобразования. В результате действие Esse теперь лучше, чем родные действия обработки текста от команд: он так же интегрирован с другими переменными в команде, он возвращает переменную с обычным текстом, но поддерживает больше типов преобразований, чем команды.
Результаты Действий
Интеграция между командами и сторонними приложениями через параметры не является односторонним каналом связи: в дополнение к передаче ввода в приложения через параметры команды могут получать результаты от приложений в различных форматах.
CARROT Weather (379 р.) была обновлена для iOS 13 с действием «Get Weather Report», который позволяет запрашивать прогноз у приложения, чтобы вернуть текущие наблюдения, почасовые прогнозы или ежедневный прогноз в приложение Быстрые Команды – все это без необходимости открывать CARROT Weather или передавать данные буфера обмена через команды Siri. По умолчанию действие использует ваше текущее местоположение для проверки погоды, но вы также можете ввести адрес в окне параметров «Choose Location» или, что еще лучше, подключить параметр местоположения с переменной местоположения, возвращенной другим действием; например, можно получить адрес события календаря и передать его в качестве параметра местоположения в действие CARROT Weather.


Когда команда CARROT запускается с набором параметров «текущие наблюдения», он возвращает текущие погодные условия в виде простой текстовой строки. Выберите режим прогноза и команда вернет список результатов, который совместим с действием «выбрать из списка», чтобы представить несколько элементов одновременно.

Благодаря движку Content Graph engine выходные данные, возвращаемые сторонними действиями, часто можно просматривать и обрабатывать в командах без необходимости дальнейшего преобразования. Например, у Secure ShellFish есть команда для перечисления содержимого каталога на удаленном сервере: результатом является коллекция путей к файлам, которые вы можете прокрутить с помощью быстрого просмотра или которые вы можете объединить с действием «объединить текст». Secure ShellFish также может загружать файлы с сервера: в этом случае результатом будет переменная «Файл», которая изначально поддерживается командами и может быть просмотрена с быстрым просмотром, передана через Поделиться или отправлена в другое место.

Toolbox Pro, утилита (в настоящее время находится в бета-версии), которая призвана дополнять команды дополнительными функциями с помощью собственных действий/команд, поставляется с действием, которое позволяет создавать изображения программно и использовать их в других действиях. Например, вот изображение (Красный квадрат), которое было создано внутри команды с помощью стороннего действия, на которое наложен значок, извлеченный из iCloud Drive:

Настраиваемые сообщения об ошибках
Кроме того, в iOS 13 сторонние действия могут возвращать настраиваемые сообщения об ошибках, которые более информативны, чем “возникла неожиданная проблема с хост-приложением”. Если что-то пошло не так в скрипте, я получу точное сообщение об ошибке, сгенерированное из JavaScript, но внутри приложения команд.

Свобода, предоставляемая возможностью анализировать данные приложения как пользовательские объекты в командах, отличается от всего, что мы видели раньше в автоматизации iOS: мы достигли точки, где всего за несколько нажатий мы можем запросить безопасный доступ к данным приложения, действиям программы в визуальной среде и работать с ответами, которые могут быть подключены к действиям других приложений. По определению, это интерфейс прикладного программирования, но он доступен без написания строк кода, и он полностью интегрирован с Siri на нескольких устройствах Apple.
Что подводит нас к следующей важной функции, разблокированной через параметры…
Диалоговые Команды и взаимодействия с Siri
Диалоговые команды, первоначально анонсированные Apple на WWDC, относятся к числу функций, которые были перенесены на iOS 13.1. Они помогают нам понять стратегию Apple с динамическими параметрами и сторонними действиями.
Диалоговая команда — это команда, с которой вы можете взаимодействовать при использовании Siri и вашего голоса. Как уже упоминалось выше, одним из недостатков фреймворка команд iOS 12 было отсутствие какого-либо взаимодействия пользователя с командами, запущенными внутри Siri: если команда требовала ввода некоторого текста или выбора опции из списка, она запускала приложение Быстрые Команды вместо завершения задачи в Siri.
Все это меняется в iOS 13.1: если в команде есть параметр, требующий ввода данных или взаимодействия пользователя, Siri попросит вас ввести данные, прежде чем продолжить выполнение команды.Это обычно включает в себя произнесение ответа или выбор из списка опций; как собственные действия команд, так и действия сторонних разработчиков будут поддерживать диалоговый режим, который был разработан для обеспечения взаимодействия на любом устройстве с поддержкой Siri, которое может запускать команды, включая HomePod и Apple Watch.
Когда пользовательская команда, запущенная внутри Siri, выполняет одно из следующих действий…
- Выберите из списка
- Выберите из меню
- Запросить входные данные
- Диктовать Текст
… действия автоматически преобразуются во взаимодействия Siri благодаря диалоговому режиму. Вот как выглядит действие «выбрать из списка» при запуске в Siri:

Вот меню:

А вот запросы на ввод текста:


Действия не просто соединены с Siri, поэтому вы можете произнести имя опции или нажать на экран, чтобы выбрать пункт меню: они полностью поддерживают ввод на привычном языке, позволяя вам взаимодействовать с Siri, не следуя определенному сценарию. Например, когда появляется список из нескольких вариантов, вам не нужно говорить точное имя элемента, чтобы выбрать его: вы можете просто сказать такие вещи, как “первый” или “выберите третий вариант”, и Siri будет знать, что вы имеете в виду. Все возможности привычного языка Siri для выбора списка, пунктуации и ввода текста могут быть задействованы при взаимодействии с диалоговой командой. В результате ваши команды не только более полезны, потому что вы можете использовать их в любом месте, но они также оптимизированы для голосового взаимодействия, поэтому вы можете общаться с командой, как обычно с Siri.

Диалоговые команды не ограничиваются несколькими действиями Apple: все сторонние действия, основанные на параметрах, могут использоваться в диалоговом режиме в Siri начиная с iOS 13.1. Когда действия с параметрами вызываются в Siri, они ведут себя так же, как и в форме пользовательского интерфейса в приложении Быстрые Команды, с добавлением пользовательских голосовых ответов. Если параметр был оставлен пустым или имеет значение «спрашивать каждый раз», Siri выведет список динамических параметров на выбор, которые затем можно подтвердить с помощью ввода на привычном языке. Если действие имеет несколько параметров, требующих ввода пользователем, Siri будет перемещаться по ним последовательно, запрашивая, чтобы вы заполнили их по одному во время выполнения, прежде чем выполнить команду и вернуть визуальный или голосовой ответ (или оба).
Давайте вернемся к команде Esse, о котором мы упоминали выше. Если оба параметра «текст» и «функция» остаются пустыми, а команда вызывается в Siri, она не будет ошибаться и не запустит приложение команд: в iOS 13.1 Siri сначала попросит вас выбрать преобразование для запуска, а затем позволит вам продиктовать текст для преобразования.

Это не преувеличение, говоря, что диалоговый режим дает командам совершенно новый опыт использования, что делает приложение – и, следовательно, Siri – значительно удобнее на ежедневной основе.
В то время как интеграция команд с Siri в iOS 12 была полезной, она была ограничена фиксированными действиями без интерактивности, что препятствовало способности Siri выполнять персонализированные задачи по требованию в течение дня. iOS 13.1 и диалоговый режим представляют нам полное виденье Apple Быстрых Команд и Siri: каждое действие, независимо от того, сделано ли оно Apple или нет, теперь может работать в режиме только голоса на любом совместимом устройстве, предоставляя вам новые способы использования ваших любимых приложений и запуска пользовательских команд, где бы вы ни находились, когда бы вы ни захотели.
Разговорный режим суммирует преимущество Apple перед конкурентами: в мире, где цифровые помощники становятся более универсальными, продвигая ваши личные данные через веб-интеграцию и облачные сервисы, Apple расширяет Команды и Siri, используя четкую модель конфиденциальности, основанную на магазине приложений, запросах на устройстве и собственных действиях приложения. Если разработчики добавят действия с динамическими параметрами в своих приложениях, они не просто предложат лучшие функции автоматизации для команд: они фактически станут новыми функциями для Siri – уникальной смесью автоматизации и услуг, которые может предоставить пользователям сегодня только Apple.
Данная статья является вольным переводом материалов взятых из обзора iOS13 от www.macstories.net.
Продолжение следует…
Если вы собираетесь поделиться данной статьёй не в телеграме, воспользуйтесь этой ссылкой: https://tgraph.io/Parametry-komand-i-dialogovye-komandy-10-03.
================================
Ну и конечно, наши странички в сети:
Лучшие скидки только для наших подписчиков (поддержка канала с пользой)
Ништяк сделали)
НравитсяНравится