JavaScript и «Команды» в iOS 12: что это такое и как пользоваться

«Бочка», удобная прокрутка и замена текста — не предел.

После запуска iOS 12 Apple опубликовала приложение «Команды». С помощью него вы можете автоматизировать некоторые действия сценариями из нескольких приложений.

Одна из особенностей «Команд» — возможность выполнять свой яваскрипт в браузере. Вы можете написать любой скрипт (основанный на наборе функций Safari и iOS) и запустить его. Программист Крис Хатчинсон подготовил подробную инструкцию по применению скриптов в «Командах».

Бочка

Начнём с простого. С помощью «Команд» можно сделать «бочку» — когда веб-страница прокручивается на 360 градусов.

Создайте новый ярлык и в поле поиска введите «Выполнить JavaScript на веб-странице». Вам дадут какой-то примерный шаблон — его нужно заменить на этот код, чтобы получить эффект «бочки»:

Код довольно простой, но если вы незнакомы с яваскриптом, то вот что он делает:

  1. Создаёт тег <style>;
  2. Заполняет тег CSS-анимацией, прокручивающей страницу на 360 градусов;
  3. Добавляет получившийся блок на страницу и запускает анимацию;
  4. Вызывает метод completion() для завершения анимации.

Но написать код — недостаточно для его работы. Нужно сделать ещё кое-что:

  1. Дайте скрипту название;
  2. В настройках укажите показ скрипта в виджете;
  3. В пункте «Показывать при экспорте» отметьте веб-страницы Safari;
  4. Нажмите «Готово» и развлекайтесь: заходите на любую страницу в браузере и запускайте скрипт.

Но у скрипта есть изъян. Если вы один раз прокрутили страницу этим скриптом, то просто так повторить команду не получится. Вам придётся перезагрузить страницу.

Гироскоп в браузере

Теперь попробуем немного усовершенствовать этот скрипт, активировав гироскоп. Если ваш телефон наклоняется назад, то страница прокручивается вверх, а если вперёд — то вниз.

Выполните ту же процедуру, что и с «бочкой», но вставьте уже другой код в «Команды»:

Он немного сложнее и вот как работает:

  1. Создаёт функцию, определяющую изменение ориентации устройства;
  2. Берёт направление «beta» (горизонтальный наклон) и определяет его значение;
  3. Основываясь на значении «beta», скрипт решает, что ему делать: ничего, прокрутить страницу вниз, вверх или сделать быструю прокрутку вниз;
  4. Вызывает обработчик завершения completion().

Чтобы скрипт работал, не забудьте проставить все галочки в настройках.

Эта штука довольно удобная, особенно если вы читаете какую-то огромную статью. Пальцем листать ничего не надо — наклоняем телефон, и всё. Работает на Айфоне и Айпаде в обеих ориентациях.

Замена текста

Теперь немного развлечений. Этот скрипт заменит некоторые слова на эквивалентные эмодзи.

Крис сделал небольшую библиотеку слов английского языка. Но это же можно сделать и с русскими словами.

Вот как этот скрипт работает:

  1. Определяет список эквивалентных слов и эмодзи;
  2. Создаёт функцию замены всех слов на эквивалентные эмодзи;
  3. Берёт HTML-страницы и меняет слова на эмодзи;
  4. Завершает процесс.

Это, естественно, не все возможные скрипты для «Команд» на iOS 12. Например, вы можете взять какие-то данные со страницы, объединить их с данными другого сервиса и отправить сообщение в виде пуш-уведомления.

Чтобы это сделать, нужно передать какие-то данные другому приложению через метод completion(). Например, вот так:

// Ваш яваскрипт
const data = «Данные для возвращения в «Команды»»;
completion(data);

Таким образом вы можете добавить дополнительные действия вроде копирования в буфер, отправки уведомлений и многого другого.

Крис считает, что возможность использования яваскриптов в «Командах» — очень крутая. Она позволит разработчикам по-новому заглянуть на создание приложений для мобильных устройств. Это верно, но не забывайте, что не все скрипты делают что-то полезное, и не нужно вставлять всё подряд из интернета в ваш iPhone или iPad.