JavaScript и «Команды» в iOS 12: что это такое и как пользоваться
«Бочка», удобная прокрутка и замена текста — не предел.
После запуска iOS 12 Apple опубликовала приложение «Команды». С помощью него вы можете автоматизировать некоторые действия сценариями из нескольких приложений.
Одна из особенностей «Команд» — возможность выполнять свой яваскрипт в браузере. Вы можете написать любой скрипт (основанный на наборе функций Safari и iOS) и запустить его. Программист Крис Хатчинсон подготовил подробную инструкцию по применению скриптов в «Командах».
Бочка
Начнём с простого. С помощью «Команд» можно сделать «бочку» — когда веб-страница прокручивается на 360 градусов.
Создайте новый ярлык и в поле поиска введите «Выполнить JavaScript на веб-странице». Вам дадут какой-то примерный шаблон — его нужно заменить на этот код, чтобы получить эффект «бочки»:
Код довольно простой, но если вы незнакомы с яваскриптом, то вот что он делает:
- Создаёт тег <style>;
- Заполняет тег CSS-анимацией, прокручивающей страницу на 360 градусов;
- Добавляет получившийся блок на страницу и запускает анимацию;
- Вызывает метод completion() для завершения анимации.
Но написать код — недостаточно для его работы. Нужно сделать ещё кое-что:
- Дайте скрипту название;
- В настройках укажите показ скрипта в виджете;
- В пункте «Показывать при экспорте» отметьте веб-страницы Safari;
- Нажмите «Готово» и развлекайтесь: заходите на любую страницу в браузере и запускайте скрипт.
Но у скрипта есть изъян. Если вы один раз прокрутили страницу этим скриптом, то просто так повторить команду не получится. Вам придётся перезагрузить страницу.
Гироскоп в браузере
Теперь попробуем немного усовершенствовать этот скрипт, активировав гироскоп. Если ваш телефон наклоняется назад, то страница прокручивается вверх, а если вперёд — то вниз.
Выполните ту же процедуру, что и с «бочкой», но вставьте уже другой код в «Команды»:
Он немного сложнее и вот как работает:
- Создаёт функцию, определяющую изменение ориентации устройства;
- Берёт направление «beta» (горизонтальный наклон) и определяет его значение;
- Основываясь на значении «beta», скрипт решает, что ему делать: ничего, прокрутить страницу вниз, вверх или сделать быструю прокрутку вниз;
- Вызывает обработчик завершения completion().
Чтобы скрипт работал, не забудьте проставить все галочки в настройках.
Эта штука довольно удобная, особенно если вы читаете какую-то огромную статью. Пальцем листать ничего не надо — наклоняем телефон, и всё. Работает на Айфоне и Айпаде в обеих ориентациях.
Замена текста
Теперь немного развлечений. Этот скрипт заменит некоторые слова на эквивалентные эмодзи.
Крис сделал небольшую библиотеку слов английского языка. Но это же можно сделать и с русскими словами.
Вот как этот скрипт работает:
- Определяет список эквивалентных слов и эмодзи;
- Создаёт функцию замены всех слов на эквивалентные эмодзи;
- Берёт HTML-страницы и меняет слова на эмодзи;
- Завершает процесс.
Это, естественно, не все возможные скрипты для «Команд» на iOS 12. Например, вы можете взять какие-то данные со страницы, объединить их с данными другого сервиса и отправить сообщение в виде пуш-уведомления.
TIL you can run a block of JavaScript in any web page via iOS 12 Shortcuts. Here’s one I hacked together for @TimesDevelops to load article performance data from our analytics platform ? pic.twitter.com/Mh5ZleI6Kk
— Chris Hutchinson (@chrishutchinson) 12 октября 2018 г.
Чтобы это сделать, нужно передать какие-то данные другому приложению через метод completion(). Например, вот так:
// Ваш яваскрипт
const data = «Данные для возвращения в «Команды»»;
completion(data);
Таким образом вы можете добавить дополнительные действия вроде копирования в буфер, отправки уведомлений и многого другого.
Крис считает, что возможность использования яваскриптов в «Командах» — очень крутая. Она позволит разработчикам по-новому заглянуть на создание приложений для мобильных устройств. Это верно, но не забывайте, что не все скрипты делают что-то полезное, и не нужно вставлять всё подряд из интернета в ваш iPhone или iPad.