Javascript ios что это

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

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

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

Короткие команды iOS: что это такое и как настроить

Вячеслав Лазарев

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

Бочка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Действие «Выполнить код JavaScript на веб-странице» в Быстрых командах на iPhone или iPad

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

Быстрые команды, которые запускают пользовательский код JavaScript на веб-странице, очень широко используются. Можно создать быстрые команды, которые получают определенные данные с веб-страницы и затем передают эти данные в задачу: например, можно получить расписание уроков и добавить его в Календарь или экспортировать список членов группы в социальной сети и вставить эти данные в электронную таблицу.

Читайте также:  Simpledateformat java locale ru

Также можно создать быстрые команды, которые дают возможность модифицировать веб-страницу — например, менять шрифт текста или скорость воспроизведения видео на ней. Чтобы выполнять код JavaScript из быстрой команды, необходимо включить соответствующую настройку. См. раздел Дополнительные настройки конфиденциальности и безопасности в Быстрых командах на iPhone и iPad.

Информацию об использовании быстрых команд, которые выполняют код JavaScript на веб-странице, см. в разделе Использование действия «Выполнить код JavaScript на веб-странице» в Быстрых командах на iPhone или iPad.

О получении данных с веб-страниц

Действие «Выполнить код JavaScript на веб-странице» позволяет получать данные с веб-страницы, захватывая все элементы, которые соответствуют определенным критериям, и затем обрабатывая эти элементы в соотвествии с заданием (или передавая их дальше).

Например, чтобы создать список всех изображений на веб-странице, используйте код:

var elements = document.querySelectorAll(«img»);

В другом примере, чтобы получить все объекты класса «post», используйте код:

var elements = document.querySelectorAll(«.post»);

После создания списка NodeList можно переходить между его элементами (для дополнительного отбора элементов или добавления их в структуру данных) с помощью следующего кода:

Входные данные для действия «Выполнить код JavaScript на веб-странице»

Действию «Выполнить код JavaScript на веб-странице» в качестве входных данных должна передаваться активная веб-страница Safari. Эту быструю команду необходимо со страницы экспорта (а именно, из Safari, SFSafariViewController или ASWebAuthenticationSession).

Когда быстрая команда запускается со страницы экспорта, входные данные из приложения Safari передаются в первое действие Вашей быстрой команды.

Хотя входные данные для действия «Выполнить код JavaScript на веб-странице» должны представлять собой веб-страницу Safari, в действие можно вставить дополнительные данные, используя волшебные переменные. Например, быстрая команда Изменить скорость видео (доступная в Галерее) содержит действие «Запустить JavaScript на веб‑странице», которое вносит изменения в видео на веб‑странице. Скорость воспроизведения видео контролируется переменной Speed.

Информацию о запуске быстрых команд из Safari см. в разделе Запуск быстрой команды из другого приложения на iPhone или iPad.

Выходные данные для действия «Выполнить код JavaScript на веб-странице»

Чтобы получить данные в результате, нужно вызвать обработчик завершения в JavaScript, например completion(result) . Поскольку JavaScript обычно используется с асинхронными шаблонами, вызов также является асинхронным. Это дает возможность несинхронно завершить действие. Пример кода:

Выходные данные для действия «Выполнить код JavaScript на веб-странице» могут быть любым типом данных JSON, в том числе:

  • строка String
  • число Number
  • логическое значение (истина или ложь)
  • массив Array (содержащий любой другой тип JSON)
  • словарь (содержащий любой другой тип JSON)
  • нулевое значение (null)
  • неопределенное значение (undefined)
Читайте также:  Check class with javascript

Приложение «Быстрые команды» автоматически кодирует и декодирует возвращаемое значение для обеспечения корректной передачи данных между JavaScript и приложением «Быстрые команды». Это означает, что Вам не нужно выполнять вызов JSON.stringify(result) перед вызовом обработчика завершения.

Поскольку возвращенное значение является типом данных JSON, некоторые возвращенные значения могут не сработать. Например, функция или узел Node при кодировании в JSON могут не дать хорошего результата. В таком случае рекомендуется создать массив или словарь, который содержит нужные Вам значения, совместимые с JSON.

Примечание. Объект в JavaScript является просто словарем, поэтому базовые объекты хорошо конвертируются в типы данных JSON.

Если не нужно возвращать никакие данные от действия «Выполнить код JavaScript на веб-странице», можно вызвать completion() без аргумента в функции (так как поддерживаются выходные данные типа undefined ). Это аналогично вызову функции completion(undefined) .

Ограничение по времени для действия «Выполнить код JavaScript на веб-странице»

Так же как и любое другое расширение JavaScript для Safari, действие «Выполнить код JavaScript на веб-странице» имеет ограничение по времени и должно быть завершено как можно быстрее. Код JavaScript, использующий синхронные функции, может не завершиться вовремя. Примеры синхронных функций:

  • window.alert()
  • window.prompt()
  • window.confirm()
  • Время ожидания продолжительностью в несколько секунд — например: window.setTimeout(function() < completion(); >, 5000);

Если Ваш код JavaScript превысит допускаемое время ожидания, быструю команду не удастся завершить, и в ходе ее выполнения отобразится сообщение об ошибке «Истекло время ожидания JavaScript».

Обработка синтаксических ошибок и ошибок при выполнении

Для написания кода JavaScript в действии «Выполнить код JavaScript на веб-странице» можно использовать любой синтаксис, который поддерживается в Safari.

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

При вводе скрипта в текстовое поле синтаксические подсказки помогают убедиться, что в коде JavaScript нет ошибок. Например, если не хватает кавычек в конце строки, весь последующий текст после этой строки будет выделен.

Если синтаксис скрипта правильный, но возникает ошибка при выполнении, действие «Выполнить код JavaScript на веб-странице» определяет и показывает исключения. Например, если в скрипте указана несуществующая переменная или функция (такая как shortcuts.completion() ), при выполнении появится ошибка.

Источник

Оцените статью