Виджеты что это такое википедия: Виджет — что это такое? Определение, значение, перевод

Содержание

Виджет — это… Что такое Виджет?

Кросс платформенный редактор элементов интерфейса Qt designer

Элеме́нты интерфе́йса — примитивы графического интерфейса пользователя, имеющие стандартный внешний вид и выполняющие стандартные действия.

Известны также под именем ви́джеты (англ. widget), контро́лы (control) и элементы управления.

Происхождение термина Виджет

Слово «widget» впервые фиксируется в 1926 году в том же значении, что и gadget — «приспособление, штуковина». Предполагают, что на его форму повлияло gadget, а происходит он из which it — «этот, как его».

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

Типовые элементы интерфейса

В большинстве существует стандартный набор элементов интерфейса, включающий следующие контролы:

  • кнопка (button)
  • список (list box)
  • выпадающий список (combo box)
  • флажок/переключатель (check box)
  • радио-кнопка (radio button)
  • поле редактирования (textbox, edit field)
  • значок (icon)
  • панель инструментов (toolbar)
  • панель (строка) статуса (status bar)
  • всплывающая подсказка (tooltip, hint)
  • полоса прокрутки (scrollbar)
  • вкладка (tab)
  • элемент для отображения табличных данных (grid view)
  • меню (menu)
  • окно (window)
  • дерево — элемент для отображения иерархии (tree view)

Библиотеки элементов интерфейса

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

  • Кросс-платформенные, на основе SWT (Standard Widget Toolkit) — в составе проекта Swing — разработка Sun, компонента Java Foundation Classes (JFC) на основе AWT
  • AWT — частично устаревший Abstract Windowing Toolkit (Sun, 1995)
  • Кросс-платформенные, на основе C/C++, с возможностью использования в других языках
  • Кросс-платформенные, на основе Pascal
    • CLX — адаптация интерфейса Qt для Borland Delphi & Kylix
  • Кросс-платформенные, на основе Ajax
  • Под MUI (Magic User Interface)
  • Под Zune
  • Под Turbo Vision — в составе Borland/Turbo Pascal 6.0/7.0, текстовый интерфейс
  • Под Microsoft Windows
  • Под X Window System
    • Xaw
    • Open Motif, BREW

      Мобильные виджеты

      обеспечивают обновление данных через Internet-GPRS. Преимущества виджетов в мобильном телефоне: Вам достаточно одного клика, чтобы воспользоваться интересующим вас сервисом; виджеты работают быстрее, чем обычный Web браузер или Java приложение, вы экономите GPRS трафик; вы выбираете те сервисы и виджеты, которые нужны именно Вам.

      Ссылки

  • Wikimedia Foundation.
    2010.

    что значит настройка и установка на рабочем столе телефона, где поставить, включить и найти

    Мы увеличиваем посещаемость и позиции в выдаче. Вы получаете продажи и платите только за реальный результат, только за целевые переходы из поисковых систем

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


    Подпишись на рассылку и получи книгу в подарок!

    Время не стоит на месте. Компьютерные технологии стремительно развиваются, и словарный запас пользователей ПК и мобильных устройств постоянно пополняется новыми словами. Незнакомые названия нередко ставят в тупик, заставляя размышлять об их значении. Поэтому поговорим о том, как добавить и установить виджет на экран телефона, что значит настройка и установка на рабочем столе, расскажем, как настроить, поставить, подключить его на Андроид, а также, где найти, включить, открыть и загрузить полное меню; итак, где же все это находятся.

    Что означает

    Это понятие зачастую употребляют в отношении обычных сайдбаров, что в корне неверно. Также неправильно называть им визуальный элемент интерфейса. Однако в прошлом это действительно был его синоним. Слово widget и переводится с английского как какое-либо приспособление.

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

    Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA

    Что значит понятие виджет

    Большинство людей пользуются ими ежедневно и не обращают на это внимания. В соцсетях, браузерах, на ОС Android они представлены в виде счетчиков времени, информеров погоды и других иконок, запускающих программы.

    Ведущая функция данных визуальных элементов — привлечение посетителей площадки. Владельцы торговых платформ заинтересованы в активной реализации своих товаров и услуг. Эти информационные блоки помогают им в сборе сведений о целевой аудитории.

    Кроме того, widget дает возможность пользователям подписаться на рассылку сообщений с заинтересовавшего их ресурса, заказать обратный звонок и т.д. И конечно, самое главное, для чего нужны виджеты: они помогают максимально удобно и наглядно предоставить информацию юзерам, делая подачу контента простой и понятной.

    Основные разновидности

    Данные элементы интерфейса различаются между собой не только визуально. Не менее выраженные расхождения — функционал и место установки.

    По внешнему виду

    Внешне отличаются большим разнообразием. Это могут быть топперы — полоски с кнопками в самом верху дисплея. С их помощью можно собрать контакты, узнать о проводимых акциях и установленных скидках. Аналогичный информационный объект, расположенный внизу, именуется флором.

    К ним же относятся и всплывающие окна, которые в огромном количестве появляются перед пользователем при посещении различных ресурсов. Чаще всего в них содержатся предложения задать вопрос или оставить контактные данные.

    Разбираясь со словом виджет и пытаясь простым языком объяснить, что это такое, нужно помнить и о ярлыках. Их назначение заключается в возможности осуществления обратной связи.

    По месту встраивания

    Подразделяются на десктоп-виджеты и веб-приложения. Первый вариант предназначается для размещения на рабочем столе, второй — непосредственно для веб-страниц. На сетевых ресурсах можно встретить как текстовые, так и визуальные типы программ. С их помощью пользователь может пройти авторизацию на площадке, не прилагая при этом значительных усилий, поделиться сведениями, сформировать приглашение, выложить собственные тексты или изображения, активировать игру и т.д. Разработчики знают, что значит добавить виджет и как его установить на страницах сайта. Благодаря чему каждый посетитель web-ресурса имеет возможность с ними взаимодействовать и производить необходимые действия.

    Вид приложения

    Widget может быть представлен в самых разных вариациях:

    • Yandex позволяет располагать мини-приложения как таймеры времени, новостные информеры, сборщики данных о пробках на дорогах и т.д. Любое из них без проблем поддерживается распространенными ОС и браузерами.
    • В прежних версиях «Окон» элементы интерфейса находятся на рабочем столе. В Windows 8 под их расположение отведена определенная зона. В ней могут размещаться календари, часы, компактные игры или настроенные юзером сайты.
    • Ряд операционок от «Apple» предусматривают наличие отдельного слоя — дашборда. Увидеть его можно посредством нажатия клавиши F12.
    • Большого прогресса в этом плане достигла «Опера». Базирующиеся на нем приложения работают на любом устройстве, если оно оснащено соответствующим обозревателем.

    Особенности desktop-widgets

    Такие мини-программы запускают на определенной операционной платформе.

    Но прежде нужно узнать, как найти виджеты. Сделать это можно, обратившись к разным источникам: отыскать среди предустановленных или загрузить из интернета.

    Обычно элементы легко перемещаются по дисплею, их параметры и дизайн поддаются корректировке. Так, в седьмой версии «Окон» и других ОС есть временной счетчик. Чтобы поместить его на рабочий стол, достаточно выполнить нажатие одной клавиши. Системное время будет доступно пользователю постоянно. Однако, для установки того же прогноза погоды уже потребуется подключение к сети.

    Особенности web-widgets

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

    Интерактивные

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

    С ними знакомы абсолютно все пользователи. У каждого на экране мобильного или мониторе ПК имеются иконки-кнопки «ВКонтакте», «Инстаграм», «Твиттер» и прочие. Их монтируют на сайте, чтобы посетители могли делиться увлекательной информацией. Это своего рода подтверждение, если сведения распространяют, значит они обладают полезностью и способны заинтересовать юзеров.

    Неинтерактивные

    Отличаются от интерактивных тем, что на их работу невозможно повлиять. Они отображают контент независимо от пользовательских действий.

    К ним относятся любые информеры: календари, справки курса валют, прогноз погоды.

    Что такое лента виджетов

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

    • «ярлыки», при помощи которых осуществляется быстрое открытие приложений;
    • «заметки», в которых удобно делать краткие записи;
    • «мероприятия», позволяющие не забыть о важных делах;
    • «безопасность», контролирующая наличие лишних данных и возможных угроз.

    Зачем нужны виджеты на телефоне и как их установить

    Жизнь без мобильного устройства сейчас попросту невозможна. Современные средства связи оснащены соответствующими элементами, без которых нельзя обойтись. Уровень заряда батареи, объем свободной памяти — то, на что пользователь обращает внимание в первую очередь. Не менее значимы и управляющие приложения, отвечающие за Wi-Fi, Bluetooth и функционирование иного оборудования.

    Нельзя не отметить и чисто визуальную привлекательность кнопок мини-программ, которые украшают интерфейс, делая его не только удобным, но и стильным. Безусловно, все данные, предоставляемые виджетами, можно самостоятельно отыскать на просторах сети.

    Но с их помощью сделать это удастся гораздо проще и быстрее.

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

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

    Что собой представляет приложение сообщений

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

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

    Устанавливая widget сообщений, следует взять на вооружение несколько полезных советов:

    • Располагать его лучше в самом внизу.
    • Посетитель ресурса должен иметь возможность свернуть или закрыть элемент в любой момент.
    • Сотрудник компании, ответственный за обратную связь, обязан отвечать на вопросы покупателей очень быстро. В противном случае смысла в использовании программы нет.
    • Клиенту необходимо видеть статус консультанта (занят он или свободен), наличие других операторов в чате.
    • Удачной идеей будет размещение фотографии отвечающего. Личное фото вызывает больше доверия и привлекает внимание.
    • Не стоит забывать и о подходящем обращении к пользователям. Оно должно быть эмоциональным и способствующим решению возникшей проблемы.

    Всплывающие окна

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

    Содержимое сообщения зачастую не связано с предметом поиска. Человек может искать пылесос, а ему навязчиво предлагают купить лыжи, зато по очень выгодной цене. Закрыть раздражающее окно не удается, потому что заветный крестик на нем не виден. Естественно, что в такой ситуации подавляющее число людей просто покидают сайт и больше на него не возвращаются.

    Чтобы избежать подобного, надлежит правильно использовать widget:

    • Всплывающий элемент должен появляться не сразу. Посетителю нужно дать время рассмотреть интересующие его товары или найти сведения.
    • Содержимое сообщения обязано соответствовать запросу пользователя. Не следует предлагать человеку кастрюлю, когда он ищет средство от выпадения волос.
    • У юзера не должно возникать проблем с закрытием окна в любое время.

    Виджет обратного звонка

    При грамотном использовании существенно повышает эффективность ресурса:

    • Размещать его рекомендуется внизу страницы с правой стороны. Для отображения обычно берут изображение телефонной трубки яркого цвета (красного, синего, фиолетового и т.д.).
    • Элемент не следует перегружать большим количеством ненужной информации. Достаточно указать временной промежуток, в течение которого оператор перезвонит заинтересованному пользователю.
    • Мини-приложение не должно закрывать собой другие части интерфейса и контент.

    Таймер обратного отсчета

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

    • Нельзя намеренно вводить пользователя в заблуждение, сообщая ему о несуществующих предложениях. Если покупатель заметит, что цифры на табло со вчерашнего дня не изменились, это основательно подорвет доверие к площадке.
    • Некоторые web-сайты грешат неправильным расположением таких элементов. Они размещают их по центру, не давая возможности закрыть или хотя бы сдвинуть в сторону, мешающий просмотру содержимого платформы счетчик. Этого делать нельзя. Посетитель должен без труда управлять положением таймера, скрывать его или перемещать на свое усмотрение.
    • Кроме того, widget не нужно демонстрировать слишком часто. Если он будет всплывать каждые пару минут, юзер может попросту покинуть ресурс с навязчивой и ненужной ему информацией.

    Подведем итоги

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

    Alterator/evolution — ALT Linux Wiki

      
    Эта страница была перемещена с freesource.info.
    Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
    Просьба по окончанию убрать этот шаблон со страницы.

    Простейший язык описания интерфейсов[править]

    (всё описанное касается alterator версии 2.9 и старше)

    Документ — основной кирпичик в построении интерфейса. Каждый документ есть виджет, и наоборот, каждый виджет есть некоторый документ. Простейшие документы представляют простейшие виджеты, например, кнопку, метку и так далее. Документы сложнее, композиция простейших, представляет комплексные виджеты — самостоятельные части диалога с пользователем. Кроме того каждый документ можно рассматривать ещё как некоторую программу на простом подмножестве языка программирования Scheme. Ну обо всём по порядку.

    1. Документ как файл[править]

    Документ прежде всего текстовый файл, размещающийся где-то на файловой системе.
    Документы адресуются любым распространённым способом: через указание полного пути, через URI по правилам RFC-3986, через URI по правилам alterator.

    2. Документ как программа[править]

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

    C этой точки зрения документ представлен как множество вложенных друг в друга окружений. Каждое окружение не что иное как область видимости локальных переменных. Окружения отдельных документов не пересекаются и соответственно вы не можете использовать в одном документе вспомогательные функции, определённые в другом документе.

    Для удобства управления окружениями предоставлено несколько базовых конструкций:
    1. (document:insert <идентификатор>)
    В результате происходит вставка «окружения» внутрь существующего, <идентификатор> — это идентификатор документа как файла, определённый одним из перечисленных выше способов.

    Пример:

    "our environment"
    (document:insert "/other/document") ; в этом месте документа окажется новое окружение
    "our environment again"

    2. (document:envelop keyword) , (document:end-envelop keyword) — для создания вложенного окружения вовсе не обязательно создавать отдельные файлы, достаточно окружить его инструкциями document:envelop и document:end-envelop.
    Последняя конструкция не обязательна если вы хотите распространить вложенное окружение до конца файла.

    Пример:

    "our environment"
    (document:envelop some-keyword)
    "nested environment"
    (document:end-envelop some-keyword)
    "our environment again"
    "our environment"
    (document:envelop some-keyword)
    "nested environment"
    ; вложенное окружение распространяется до конца данного файла

    3. (document:surround <идентификатор>) — иногда бывает полезно добавить не вложенное окружение, а наоборот, охватить данный документ каким-то окружением из другого файла.

    Пример:

    (document:surround "/some/document")
    "here"; наше окружение вложено в окружение документа "/some/document"

    О том какие бывают окружения мы познакомимся в следующем разделе

    3. Документ как виджет[править]

    У любого виджета есть атрибуты: текст у кнопки, длина у списка.
    Чтобы с атрибутами можно было работать — их надо создать. Для этого существует стандартное окружение with-attributes.
    В качестве дополнительных параметров в инструкцию document:envelop передаётся список имён атрибутов, которые мы хотим определить.

    Пример:

    (document:envelop with-attributes (width height text))
    ; далее можно работать с этими атрибутами.

    Информация об этих атрибутах сообщается графическому представлению виджета после того как он будет создан, то есть это есть не что иное как рычаги управления графическим представлением виджета.

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

    Поэтому существует особая разновидность атрибутов — атрибуты инициализации, которые создаются в окружении
    with-init-attributes.

    Пример:

    (document:envelop with-init-attributes (parent type))
    ;далее можно работать с этими атрибутами

    В alterator существует заранеее подготовленный документ со списком распространённых атрибутов — /std/attributes, который можно включать в качестве охватывающего окружения.

    Пример:

    (document:surround "/std/attributes")
    ;далее можно работать со стандартными предопределёнными атрибутами

    После того как атрибуты созданы, их можно задавать. Принцип простой:
    «имя значение» или «(имя значение значение)»

    Пример:

    (document:surround "/std/attributes")
    type "label"
    (layout-policy 100 100)

    На самом деле во втором случае скобки можно опустить ибо атрибут layout-policy знает, что ему требуется обязательно не одно, а два значения, атрибуту сообщается количество обязательных аргументов прямо при его создании.
    Вместо простого указания имени, имя и количество параметров заключаются в круглые скобки

    (document:envelop with-attributes (text (layout-policy 2) width height))
    layout-policy 100 100

    Поэтому предыдущий пример можно переписать следующим образом

    (document:surround "/std/attributes")
    type "label"
    layout-policy 100 100

    Вообще общее правило такое, скобки вокруг атрибутов стоит употреблять только для повышения читаемости или для передачи аргументов в количестве большем чем обязательное:

    (document:surround "/std/atributes")
    type "label"
    (layout-policy  100 100 center)

    Примитивным виджетам — примитивные документы. Так для того чтобы создать кнопку — достаточно документа, в котором будет указан её тип:

    (document:surround "/std/attributes")
    type "label"

    Аналогично и для списков, меню, и прочих компонент стандартного конструктора GUI.

    А как же из готовых примитивов строить сложные виджеты? Переходим на следующий уровень игры:

    4. Документ как контейнер[править]

    Каждый виджет ни что иное как контейнер свойств: атрибутов, callback’ов и других вложенных виджетов.
    Каждый контейнер имеет минимум два предопределённых атрибута: тип ( со значением по-умолчанию «root») и указатель на родительский контейнер. Те самые type и parent.

    Чтобы отличать вложенные окружения от полноценных виджетов, которые вставляются в данный существует особая конструкция — (document:subdocument <идентификатор>).

    Пример:

    (document:surround "/std/attributes")
    type "groupbox"
    title "some groupbox"
    (document:subdocument "/other/widget") ; контейнер вставленный в данный

    Если мы хотим удобно использовать какой-либо документ, его стоит оформить как контейнер.
    Делается это при помощи окружения with-container-presentations.
    В качестве параметров перечисляются:
    1. Имя контейнера, которым будем в дальнейшем пользоваться
    2. Идентификатор документа, в котором содержится описание контейнера.
    3. атрибуты по-умолчанию.

    Первый параметр — имя функции на языке scheme, которая будет обеспечивать удобную работу с виджетом, а третий — небольшое упрощение жизни. Например, кнопка всегда создаётся с каким-то текстом, поэтому гораздо удобнее писать
    (button «some-name») вместо (button text «some-name»)

    Пример:

    (document:surround "/std/attributes")
    (document:envelop with-container-presentations ( (label '/std/label text)
                                                                                                     (button '/std/button text)
                                                                                                     (vbox '/std/vbox))
    width 100
    height 200
    (label "text")
    (button "text")

    В результате получаем документ заданной ширины и высоты с вставленными в него кнопкой и меткой.
    Существует документ с предопределёнными традиционными атрибутами и контейнерами — «/std/base». Поэтому предыдущий пример сокращается до:

    (document:surround "/std/base")
    width 100 height 200
    (label "text")
    (button "text")

    Имея вспомогательные функции для работы с контейнерами можно объединять целлые россыпи виджетов:

    (docunment:surround "/std/base")
    width 100 height 200
    (vbox (label "text")
                (button "text" height 20)
                (hbox (label "text" ) 
                            (checkbox "text" state #t)))

    Как вы должно быть заметили каждый виджет (точнее его контейнерная фунция) принимает атрибуты по тому же принципу, что и основной документ, через пробел следуют серии «имя значение».

    5. Документ как совокупность виджетов[править]

    В реальной практике требуется ещё уметь передавать атрибутам функции — обработчики событий (callbacks), а также уметь именовать виджеты, чтобы к ним можно было потом обратиться.

    Именование происходит с помощью конструкции (document:id <имя> <виджет>) .

    (document:surrounf "/std/base")
    (document:id my-button (button "text"))

    В этом примере my-button становится синонимом конкретной контейнерной функции и все обращения к ней буду равносильны обращениям к конкретному виджету

    (my-button height 100 width 100) ; зададим высоту и ширину для той самой кнопки

    Обработчики событий — тоже атрибуты, только их значение задаётся специальным образом, а именно с помощью фунции make-callback.

    (button "text" 
                    clicked (make-callback (write "I'm clicked")))

    Для более удобной работы существует специальная конструкция when. Предыдущая конструкция равносильна:

    (button "text"
                   (when clicked
                                (write "I'm clicked")))

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

    Всё очень просто, если контейнерной функции передаётся атрибут с количеством аргументов меньше обязательного (чаще всего без аргументов), то это воспринимается как желание получить атрибуты.
    Если в процессе получения атрибута выясняется, что это обработчик (callback), то он немедленно исполняется.

    (my-button text) ; вернуть текст кнопки
    (my-button clicked) ; "щелкнули" по кнопке программно
    ;пример для более сложных атрибутов
    (my-listbox row-item-text 2 "aaa") ; выставим текст второй строки в "aaa"
    (my-listbox row-item-text 2) ; получим текст второй строки

    Вот пример диалога, когда из строки ввода считывается её содержимое и передаётся в метку

    (document:surround "/std/base")
    
    (document:id my-label (label "default-value"))
    (document:id my-edit (edit "default-value"))
    (button "Change"
                   (when clicked
                                (my-label text (my-edit text))))

    В следующих разделах будут рассмотрены уже более сложные техники работы с документами, вполне возможно что для работы вам они и не потребуются.

    6. Документ как совокупность компонент[править]

    В контейнере содержатся как правило только базовые атрибуты и для проведения более сложных модификаций приходится:

    1. вытащить атрибут
    2. изменить атрибут
    3. сохранить атрибут

    Это не удобно, поэтому есть атрибуты второго уровня: они перехватывают запрос на изменение (или получение) данных и проводят соответствующие модификации примитивных атрибутов. Вот несколько примеров подобных аттрибутов:

    1. count у listbox — получает все строки (атрибут rows) и подсчитывает их количество
    2. append-text у textbox — получает предыдущее значение текста, добавляет к нему новый и сохраняет результат.

    Все аттрибуты второго уровня создаются при помощи окружения with-meta-attributes.
    Пример:

    (with-meta-attributes  ((count ((meta-get self widget)
                                                              (length (or (simple-get widget rows) '()) ))))
    ;далее можно работать с аттрибутом count

    Для каждого аттрибута определяется

    1. имя
    2. методы которые будут вызваны в случае запросов на получение (meta-get) и изменение (meta-set)

    Каждому методу передаются два параметра: он сам (self) и виджет к которому он принадлежит (widget).
    Также предоставляются вспомогательные функции value-of для выяснения своего содержимого и simple-get, для запросов к атрибутам первого уровня.

    Работа с мета-аттрибутами уже более сложная, требует более глубоких познаний в alterator, поэтому подробно рассматриваться не будет, желающие могут посмотреть предопределённые мета-аттрибуты в файле «/std/meta-atributes» , который также как и «/std/attributes» автоматически подгружается из «/std/base».

    Ну и наконец высший пилотаж — если есть мета-аттрибуты, то должны быть и мета-виджеты.
    Возможно вы сделали какой-то хороший виджет и решили использовать его повторно в других проектах. Причём оформить его так, чтобы пользователи и не догадались, что это именно комбинированный виджет, а не примитивный. Такая возможность есть.
    Что виджет , что контейнер — всё едино. Не хватает только аттрибутов.

    Существует ещё один тип аттрибутов — прокси-аттрибуты. Их задача — перехватывать запросы на получение/изменение значения и вызывать ваши фунции внутри виджета. Например, вы сделали специальный виджет для смены пароля.
    Пользователь запрашивает у вашего виджета password1, этот запрос перехватывается и вызывается функция внутри вашего виджета, которая возращает содержимое определённого edit.

    Итак, стало быть мета-виджет — это обычный документ, в котором дополнительно определены виртуальные прокси аттрибуты. Последние создаются с помощью окружения with-proxy-attributes.
    А вот и пример с паролями:

    (document:surround "/std/base")
    (document:insert "/std/functions")
    
    (document:envelop with-proxy-attributes
                      ((password1 ((proxy-get self)
                                   (p1 text))
                                  ((proxy-set self value)
                                   (p1 text value)))
                       (password2 ((proxy-get self)
                                   (p2 text))
                                  ((proxy-set self value)
                                   (p2 text value)))))
    (vertical-spacer)
    (hbox
     layout-policy 100 -1
     (label "First password:" layout-policy 30 -1)
     (document:id p1 (edit "" echo stars
                           layout-policy -2 -1)))
    (hbox
     layout-policy 100 -1
     (label "Second password:" layout-policy 30 -1)
     (document:id p2 (edit "" echo stars
                           layout-policy -2 -1)))
    (vertical-spacer)

    Если вы захотите где-то поработать с этим виджетом, то надо всего-лишь до-определить недостающие атрибуты (именно обычные атрибуты, чтобы контейнер понял с какой стороны к нему обращаются) и всё … дальше работать как обычно.

    (document:surround "/std/base")
    
    (document:envelop with-container-presentations
                      ((password-box '/samples/presentation2)) )
    
    (document:envelop with-attributes (password1 password2))
    
    (groupbox "Subwidget demo"
              layout-policy 100 100
              (vbox layout-policy 100 100
                    children-align center
                    (document:id info
                                 (label "Passwords here..."))
                    (document:id box
                                 (password-box layout-policy 70 50
                                               password1 "123"
                                               password2 "1234"
                                               ))
                    (button "Get passwords..."
                            (when clicked
                              (info text
                                    (string-append " 1:"
                                                   (->string (box password1))
                                                   " 2:"
                                                   (->string (box password2))))))
                    (button "Reset passwords..."
                            (when clicked
                              (box password1 "zzzz"
                                   password2 "q")))))
    7. Переходы между документами[править]

    Доступны следующие команды для перехода между разными виджетами:

    • document:replace-in-widget — замещает содержимое указанного виджета на указанный документ. Возможна передача url нового документа с параметрами.
    • document:replace — вариант предыдущей команды для работы с текущим документом. Если документ был вставлен куда-то с помощью команды document:insert, до замена произойдёт во всём документе, если же он был вставлен куда-то с помощью команды document:subdocument (или как container-presentation), то замена содержимого произойдёт только в нём и не затронет родительского документа.
    • document:popup — открывает указанный документ в новом модальном окне.
    • document:window — открывает указанный документ в новом не-модальном окне, в качестве первого параметра передаётся процедура, которая будет вызвана после того как это окно будет закрыто.
    • document:end — закрывает текущее модальное окно. Когда закроется последний документ — работа приложения будет завершена.

    Использование виджетов на iPhone и iPod touch

    С помощью виджетов можно своевременно получать информативные уведомления от избранных приложений.

    В iOS 14 можно использовать виджеты на экране «Домой», чтобы нужная информация всегда была у вас под рукой. Или же можно использовать виджеты из представления «Сегодня», смахнув пальцем вправо на экране «Домой» или экране блокировки.

    Добавление виджетов на экран «Домой»

    1. На экране «Домой» нажмите и удерживайте виджет или пустую область, пока приложения не начнут покачиваться.
    2. Нажмите кнопку «Добавить»  в верхнем левом углу.
    3. Выберите виджет, выберите один из трех размеров виджета, затем нажмите «Добавить виджет».
    4. Нажмите «Готово».

    Также можно добавить виджеты из представления «Сегодня». В представлении «Сегодня» нажмите и удерживайте виджет, пока не откроется меню быстрых действий, затем нажмите «Изменить экран «Домой»». Перетащите виджет к правому краю экрана, пока он не появится на экране «Домой», затем нажмите «Готово».

     

    Добавление виджетов в представление «Сегодня»

    1. В представлении «Сегодня» нажмите и удерживайте виджет или пустую область, пока приложения не начнут покачиваться.
    2. Нажмите кнопку «Добавить»  в верхнем левом углу.
    3. Прокрутите вниз, чтобы выбрать виджет, затем выберите один из трех размеров виджета.
    4. Нажмите «Добавить виджет», затем нажмите «Готово».

    Редактирование виджетов

    В iOS 14 можно настраивать виджеты. Например, можно отредактировать виджет «Погода», чтобы увидеть прогноз для вашего текущего или другого местоположения. Вот как это сделать.

    1. Нажмите и удерживайте виджет, чтобы открыть меню быстрых действий.
    2. Коснитесь значка «Редактировать виджет» .
    3. Внесите нужные изменения, затем нажмите за пределами виджета, чтобы выйти из режима редактирования.

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

    Использование стопок виджетов

    В iOS 14 можно использовать стопки виджетов, чтобы сэкономить место на экране «Домой» и в представлении «Сегодня». Вы можете использовать смарт-стопки или создавать собственные стопки виджетов.

    Создание смарт-стопки

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

    1. На экране «Домой» или в представлении «Сегодня» нажмите и удерживайте пустую область, пока приложения не начнут покачиваться. 
    2. Нажмите кнопку «Добавить»  в верхнем левом углу.
    3. Прокрутите вниз и нажмите «Смарт-стопка».
    4. Нажмите «Добавить виджет».

    Создание собственных стопок виджетов

    1. На экране «Домой» или в представлении «Сегодня» нажмите и удерживайте приложение или пустую область, пока приложения не начнут покачиваться.
    2. Перетащите виджет поверх другого виджета. Вы можете добавить в стопку до 10 виджетов.
    3. Нажмите «Готово».

    Редактирование стопки виджетов

    1. Нажмите и удерживайте стопку виджетов.
    2. Нажмите «Редактировать стопку». Здесь вы можете изменить порядок виджетов в стопке, перетащив значок сетки . Вы также можете включить функцию «Смарт-замена», если вы хотите, чтобы iOS показывала соответствующие виджеты в течение дня. Или же смахните влево по виджету, чтобы удалить его.
    3. По окончании нажмите .

    Чтобы использовать смарт-стопки или создавать собственные стопки виджетов, необходима ОС iOS 14.

    Удаление виджетов

    1. Нажмите и удерживайте виджет, который вы хотите удалить.
    2. Нажмите «Удалить виджет».
    3. Нажмите кнопку «Удалить» еще раз для подтверждения.

    Дополнительная информация

    Дата публикации: 

    Документация

    Платежный Виджет

    Всплывающая форма с минимальным количеством полей для ввода карточных данных. Онлайн-оплата на вашем сайте без дополнительных переходов на платежный шлюз (редирект) с автоматическим определением банка — эмитента и платежной системы (Visa, Masterсard, Мир и т. д.).

    Живой виджет адаптирован под все виды мобильных устройств и браузеры. В процессе оплаты он покажет логотип вашей компании, проверит правильность заполнения карточных данных и, в случае неуспешного платежа, сообщит конкретную причину (например, нет денег на карте или истек срок действия).

    С помощью виджета CloudPayments вы достигнете максимального количества импульсных покупок у вас на сайте. Также виджет позволяет собирать подписки (рекурренты) без дополнительных технических доработок.

     Скрипт Checkout 

    Свободная платежная форма, которая принимает необходимый вид в соответствии с вашими потребностями и отображается как часть сайта. Вы самостоятельно и независимо от платежного сервиса принимаете платежи на своей стороне и управляете карточными данными, 3Dsecure, структурой и дизайном платежной формы.

    Для потребителя ваш сайт принимает оплату напрямую, что создает ассоциацию серьезности бренда и повышает уровень доверия к нему.

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

    SDK для мобильных приложений

    Программный продукт, благодаря которому любое приложение на iOS и Android получает экран оплаты в мобильном устройстве в виде нативной платежной формы с возможностью оплаты в один клик и привязкой карты (рекарринг).

    Apple Pay

    Удобный и безопасный способ оплаты от компании Apple. Пользователь единоразово привязывает карту к своему аккаунту Apple, а далее при оплате только подтверждает платеж отпечатком пальца или Face ID.

    Технология работает в мобильных приложениях и браузере Safari на iPhone, iPad, Apple Watch, MacBook и компьютерах Мас.

    Google Pay

    Способ оплаты от компании Google, который объединяет в себе возможности оплаты через приложение Google Pay в магазинах и обычной оплаты картой, сохраненной в аккаунте пользователя Google.

    Технология работает в мобильных приложениях и браузерах Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge, Opera или UCWeb UC на всех устройствах Android.

    Рекуррентные платежи

    Автоплатежи или платежи по подписке — возможность выполнять периодические регулярные списания денег с банковской карты потребителя без необходимости повторного ввода карточных данных.

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

    Онлайн-Касса

    Автоматизированный сервис, обеспечивающий подключение к оператору фискальных данных, автоматическое формирование чеков прихода и возврата в режиме онлайн, отправку электронных чеков на e-mail или телефон покупателя.

    Рекарринг

    Сервис, позволяющий после проведения первой успешной оплаты, безопасно сохранять данные банковской карты покупателя без последующей необходимости ввода данных. В процессе авторизации на сайте данные автоматически отображаются в платежной форме. Что позволяет в последующим проводить оплату в один клик.

     

    Маркетплейс

    Онлайн-площадка/витрина, которая размещает товары/услуги партнеров-продавцов на своем сайте или в приложении и привлекает туда покупателей, таким образом формируя спрос и предложение.

    Маркетплейс подписывает договор с CloudPayments, в рамках которого CloudPayments перечисляет Маркетплейсу его вознаграждение. В свою очередь, CloudPayments подписывает договоры с юридическими лицами — продавцами и рассчитывается  за реализованные на сайте или в приложении Маркетплейса товары/услуги. CloudPayments не влияет на взаимоотношения между площадкой и ее партнерами-продавцами. Вознаграждение за свой сервис для каждого продавца Маркетплейс определяет самостоятельно. Всю отчетность и информацию по платежам Маркетплейс наблюдает в режиме онлайн по каждому продавцу в личном кабинете Маркетплейса.

    Информация по операциям реализованных товар/услуг юридических лиц-продавцов доступна им в личном кабинете в личном кабинете Партнера.

    Платежные формы

    Позволяют фондам и другим НКО принимать пожертвования на свой счет с помощью настраиваемой (кастомизируемой) платежной формы, которая может быть представлена:

    • в виде ссылки
    • в виде статического QR-кода, который можно разместить как в онлайн трансляции, так и в офлайн-материалах (листовки, буклеты и т.д.) 

    Форма значительно упрощает прием пожертвований. Форма предполагает оплату банковской картой онлайн, а также при помощи Apple Pay и Google Pay.

    P2P и AFT

    P2P-переводы от одного физического лица другому физическому лицу. CloudPayments предоставляет банкам и системам денежных переводов возможность давать своим клиентам полноценный сервис по переводам денежных средств. 

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

    AFT-зачисление на счет. Благодаря данному решению, наши партнеры могут по выгодным условиям осуществлять сбор денежных средств от плательщиков на свои расчетные счета в режиме онлайн. 

    С помощью этого функционала банки и МФО могут дать возможность своим пользователям в режиме онлайн внутри своего приложения или на сайте погасить кредиты и займы со своих карт. Банки также могут предоставить своим клиентам опцию пополнения баланса своих карт картами сторонних банков внутри приложения и/или на сайте банка.

    Выплаты на карту

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

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

    Другие решения

    Оплата внутри программного обеспечения и социальных сетей

    Возможность размещения кнопки оплаты в любой социальной сети: Facebook, ВКонтакте. Оплата картой непосредственно внутри приложения с возможностью ее привязки. Без редиректа на форму платежного шлюза.

    Оплата покупки или продления лицензии внутри программного обеспечения.

    Виджеты. Обзорная тема/FAQ. | Qt

    Виджеты. Обзорная тема/FAQ.

    1. Что такое виджет?
     
    Это приложение, реализованное с помощью веб-технологий и исполняемое средствами телефонного браузера. Виджет по сути представляет собой обычную веб-страницу, но для пользователя выглядит как отдельная самостоятельная программа. Для разработчика виджеты предоставляют возможность реализовать гибкий пользовательский интерфейс, а также обеспечивают высокую скорость и удобство разработки. Для установки виджетов не требуется сертификат, файлы виджетов представляют собой zip-архивы и устанавливаются автоматически.

    2. Какие телефоны поддерживают виджеты? Что такое WRT (Web RunTime)?

    На данный момент виджеты поддерживаются телефонами на платформах S60 3rd FP 2 и S60 5th (полный пополняемый список телефонов c поддержкой виджетов можно посмотреть на сайте nokia). WRT это платформа на которой исполняются веб-приложения, т.е. в общем случае WRT в описании телефона означает что он поддерживает виджеты.

    3. Какие именно технологии используются для создания виджетов?

    Nokia заявила поддержку следующих технологий:

    • HTML 4.01 (язык разметки гипертекста)
    • XHTML Mobile Profiles (XML-совместимый расширяемый язык разметки гипертекста, с поддержкой элементов для мобильных телефонов)
    • CSS Level 2 revision 1 (CSS 2.1), WAP CSS (каскадные таблицы стилей для элементов документа)
    • JavaScript 1.5 (ECMA-262 3rd Edition) (интерпретируемый язык программирования с поддержкой объектов)
    • DOM (объектная модель документа, позволяет управлять документом и стилями как иерархией объектов, средствами JavaScript)
    • Ajax (асинхронная передача данных через Javascript, используя XML или другой формат данных)

    Также в виджетах можно использовать Flash Lite, но он не заявлен как официально поддерживаемый.
    Разбор для чего конкретно используется та или иная технология смотрите вопрос 6

    4. Что могут приложения-виджеты и что они не могут?

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

    WRT 1.0+

    • Хранение данных виджета (аналог cookies, чаще всего применяется для настроек)
    • Изменение и назначение функций на кнопки в меню приложения
    • Доступ к информации о системе и состоянии телефона
    • Доступ к подсветке клавиш и функции вибрации
    • Воспроизведение звука (и вероятно видео) средствами HTML и Flash

    WRT 1.1+

    • Доступ к информации об установленных приложениях, их запуск
    • Доступ к информации календаря
    • Доступ к адресной книге
    • Доступ к навигации
    • Доступ к информации о совершенных звонках (Log)
    • Доступ к информации о файлах в галерее (но отсутствует доступ к самим файлам)
    • Прием и отправка сообщений
    • Доступ к акселерометру

    Подробнее можно ознакомится в библиотеке разработчика nokia (на английском)
    Доступа к камере, Bluetooth, WiFi, файловой системе — НЕТ
    пункты, отмеченные зеленым, доступны начиная с WRT 1.0 , остальные — c WRT 1.1, узнать версию WRT на конкретной модели можно на сайте nokia

    5. Как создать виджет? Что нужно для написания виджета?

    Для создания простого виджета требуются базовые знания HTML (крайне рекоммендуются CSS, Javascript) или Flash, текстовый редактор и zip-архиватор.
    Виджет — зип архив, внутри которого каталог с

    • info.plist (обязательный) (XML-файл, описание виджета, пример можно взять в аттаче)
    • <name>.html (обязательный) файл который открывается при запуске виджета (допустим только 1 html файл в виджете)
    • icon.png иконка приложения-виджета (рекомендовано 88×88)
    • <name>.css файл описания стилей (может быть несколько, допустимы подкаталоги)
    • <name>.js — сценарий Javascript (может быть несколько, допустимы подкаталоги)
    • <name>.jpg/bmp/gif/png любые изображения, которые используются в html или css (может быть несколько, допустимы подкаталоги)

    также работают *.swf(flash) файлы, но их поддержка не документирована.
    Каталог помещается в zip-архив, расширение изменяется на wgz и виджет можно копировать на телефон и устанавливать (а также распространять)
    Для того чтобы быстрее разобраться в структуре таких приложений имеет смысл скачать любой существующий виджет, открыть его с помощью winrar/winzip и ознакомится с файлами внутри.

    Для разработки более сложных виджетов имеет смысл ставить SDK, в нем есть поддержка подробных отчетов о JavaScript ошибках.
    Для отладки виджетов можно использовать любой дебаггер JS, например FireBug для FireFox, но нужно адаптировать скрипт если в нем есть специфичный для телефона код. Например, предварительно заменить специфичный для телефона код совместимым с классическими браузерами, или создать объекты которые будут эмулировать объекты специфичные для телефона.

    6. Как организовать свой виджет? Какие технологии для чего используются?

    Веб-технологии создавались не как платформа для классических приложений, поэтому способы организации интерфейса несколько специфичны.
    HTML размечает объекты на экране, текст, картинки.
    CSS описывает внешний вид, свойства отображения и метод расположения того или иного объекта.
    JS — ключевой элемент виджета, он отвечает за логику программы и изменение интерфейса пользователя (используя DOM)
    Flash может заменять/дополнять все вышеперечисленные технологии
    принцип AJAX, например объект xmlHttpRequest позволяет получать данные из интернета или отправлять их туда.

    Методика связи интерфейса с логикой заключается в назначении функций JS на события происходящие с элементами — за это отвечают атрибуты onclick, onmousemove и др. в HTML, также они доступны из JS через DOM (document.object.subobject.onclick). Изменяя стили объектов через DOM можно прятать/показывать объекты (object.style.display=’none’), изменять их внешний вид и местоположение. В настоящее время веб-приложения перестали быть экзотикой и в интернете можно найти множество примеров организации веб приложений, не говоря уже о документации по упомянутым веб-технологиям.

    Ссылки

    Пример

    Скачать info.plist_108.txt

    Облачная АТС Дом.ru Бизнес

    В декабре Дом.ру Бизнес выпускает Виджет 3.0 – новую продвинутую интеграцию с amoCRM! Не забудьте установить новый виджет, чтобы воспользоваться всеми его преимуществами. Описание старой интеграции можно почитать здесь.

    С amoCRM вы не упустите из внимания ни одну сделку и сможете проанализировать работу каждого менеджера. А чтобы получить полный контроль над сделками и звонками, настройте интеграцию с Облачной АТС Дом.ру Бизнес – всего за несколько кликов. Менеджеры тоже оценят выгоды от интеграции – amoCRM покажет карточку клиента при каждом звонке, а контакты и сделки будут создаваться автоматически.

    С новым Виджетом 3.0 от Облачной АТС Дом.ру Бизнес работать со звонками в amoCRM стало еще удобнее – он всплывает в интерфейсе amoCRM с первым гудком и сообщает менеджеру всю информацию о клиенте и сделках с ним, а также позволяет создать новую сделку в пару кликов прямо во время разговора. С его помощью вы легко сможете звонить, принимать и переводить звонки на коллег – с уведомлением и без. Это становится возможным благодаря технологии WebRTC, которую поддерживает Виджет 3.0.

    Если у вас еще нет интеграции amoCRM c Облачной АТС Дом.ру Бизнес, изучите инструкцию по интеграции и настройте ее прямо сейчас:

    Инструкция по интеграции с amoCRM

    1. Автоматическое создание сделок, контактов, задач и записей в неразобранном

    Одно из главных правил успешного бизнеса – фиксировать каждый звонок и каждого позвонившего. Даже если ваш менеджер не успел или забыл создать контакт или сделку, вы все равно не упустите этого клиента. Необходимая информация о контакте и сделке сохранится в amoCRM автоматически, менеджер в любой момент может вернуться к ней и продолжить работу с клиентом.

    Исходя из задач вашего бизнеса, вы можете сами настроить события, которые будут происходить в amoCRM автоматически при каждом типе звонка (входящий или исходящий, успешный или неуспешный, с известного или незнакомого номера). В amoCRM могут создаваться:

    • запись в неразобранном,

    • новый контакт и сделка,

    • только новый контакт,

    • задача для сотрудника, принявшего звонок.

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

    В автоматически созданном контакте вместо имени будет указан номер клиента, а в поле Source phone (Источник) – номер, на который позвонил клиент. К контакту будет добавлен тег autogenerated – этим тегом отмечены все контакты, созданные автоматически.

    Подробнее про настройку всех сценариев интеграции для разных типов звонков можно почитать в инструкции по интеграции с amoCRM.

    2. Всплывающая карточка клиента при входящем звонке

    Виджет 3.0 появляется с первым гудком прямо в интерфейсе amoCRM и рассказывает все, что amoCRM знает о позвонившем:

    • имя клиента (если контакт уже сохранен в CRM),

    • имя сотрудника, ответственного за клиента,

    • номер телефона, на который звонит клиент,

    • название отдела, в который звонит клиент,

    • список всех сделок c клиентом.

    Ответив на звонок, сотрудник может сразу обратиться к клиенту по имени – это избавит его от необходимости представляться и пересказывать детали предыдущих этапов общения с вашей компанией. Кроме того, клиенту будет приятно, что его помнят, и это значительно повысит лояльность.

    Если номер еще не был занесен в базу клиентов, вы можете сразу создать контакт.

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

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

    3. Все звонки и их записи фиксируются в карточке клиента

    Облачная АТС передает в amoCRM все звонки. Их записи можно прослушать в любое время. Это позволит вам контролировать качество обслуживания клиентов, а менеджеры будут вести себя более вежливо и профессионально, зная, что их разговоры записываются.

    Ваши сотрудники тоже могут прослушивать записи, чтобы вспомнить, о чем общались с клиентом ранее. Или еще раз проверить детали, записанные со слов клиента (например, адрес доставки).

    4. Звонки в один клик

    Интеграция amoCRM и Облачной АТС Дом.ру Бизнес помогает максимально сократить ручную работу менеджера и дать ему возможность сделать больше продаж. Если сотруднику надо позвонить по ранее сохраненному номеру, достаточно просто открыть нужный контакт и кликнуть по номеру телефона. Клик по номеру телефона позволит не только копировать и редактировать номер, но и звонить контакту прямо из amoCRM.

    Также номер телефона можно набрать вручную в Виджете 3.0 (при подключенном WebRTC). Для этого откройте Виджет 3.0 кликом по телефонной трубке в левом нижнем углу экрана и наберите нужный номер (на клавиатуре или с помощью кнопок в виджете).

    5. Автоматическое соединение клиента с персональным менеджером

    Если вы закрепляете за клиентами персональных менеджеров, соединяйте их автоматически – клиенту не придется слушать голосовое меню, общаться с секретарем или другими менеджерами. Как только он наберет номер вашей компании, Облачная АТС распределит звонок на менеджера, ответственного за этого клиента.

    6. Анализируйте звонки в интерфейсе amoCRM

    В разделе «Аналитика» вашей amoCRM вы можете увидеть историю звонков всего отдела продаж и каждого менеджера в отдельности, сравнить показатели по количеству и длительности звонков с другими менеджерами и со средними показателями по компании.

    7. Сохранение истории звонков сотрудников, не присутствующих в amoCRM

    Для некоторых сотрудников нет смысла заводить аккаунт в amoCRM и тратить время на их обучение. Например, курьеру не обязательно работать в amoCRM, но при этом он участвует в процессе совершения сделки и может звонить клиенту. Чтобы вы могли контролировать и этот этап работы, выберите сотрудника, от имени которого в amoCRM будет сохраняться история и запись таких звонков.

    8. Добавляйте исключения из правил

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

    9. Добавляйте теги

    Если вы хотите особым образом выделять новых клиентов и сделки с ними, настройте автоматическое добавление специальных тегов для таких событий. Например, в период акций или запуска рекламных кампаний можно ввести тег «спецпредложение» – это поможет проще настраивать фильтры в amoCRM и быстрее находить нужные результаты.

    10. WebRTC: Принимайте и совершайте звонки в интерфейсе amoCRM

    Технология WebRTC позволяет работать со звонками через браузер – без использования телефонов и софтфонов. В этом случае всплывающая карточка клиента (Виджет 3.0) дает возможность не только увидеть имя клиента и сделки с ним, но и принимать, совершать и переводить звонки – с уведомлением и без. Менеджеру не придется отвлекаться на переключения между разными устройствами и приложениями – вся работа со звонками будет вестись прямо в веб-интерфейсе amoCRM с аккуратно встроенным в него Виджетом 3.0 от Облачной АТС Дом.ру Бизнес.

    Если менеджеру необходимо позвонить большому количеству клиентов, он может сэкономить время, создав в amoCRM список контактов для обзвона и запустив его через Виджет 3.0. Виджет позволяет гибко управлять списком контактов для обзвона – менять местами контакты, автоматически открывать карточку клиента, которому осуществляется дозвон, и т.д. Подробнее.

    11. Каждому номеру – своя интеграция

    Если ваша компания использует несколько номеров, вы можете настроить сценарии работы в amoCRM для всех номеров сразу или для каждого в отдельности.


    Подробную инструкцию о том, как настроить интеграцию amoCRM с Облачной АТС Дом.ру Бизнес с учетом интересов вашего бизнеса, смотрите в этой статье.

    Виджеты Википедии приносят ежедневные обновления на главный экран iOS 14

    Мой iPad и iPhone — важные устройства в моей жизни, но они выполняют разные роли для меня. Я использую iPad Pro как рабочую машину, в то время как мой iPhone больше настроен для отдыха и использования в дороге. В результате мой подход к виджетам сильно отличался на каждом устройстве. Однако один виджет, который я с радостью установил на обоих, — это виджет Apple Photos. Мне нравится элемент удивления и удовольствия, когда виджет автоматически обновляется в течение дня и отображает фотографии, которые я не увидел бы в противном случае.

    Этот вид пассивной, но желанной доставки информации лежит в основе трех отдельных виджетов, включенных в последнее обновление приложения Википедия:

    • Картинка дня
    • В этот день
    • Сверху читать

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

    Виджеты

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

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

    У виджетов

    так много разных вариантов использования, но такая передача информации, которую я иначе никогда бы не увидела, — одна из моих любимых. Википедия — прекрасный пример того, как это сделать правильно, и я очень хочу продолжить изучение этой концепции, создавая свои идеальные главные экраны для iOS и iPadOS 14.

    Скачать расширение MediaWiki — MediaWiki

    Нет такого расширения «виджеты».

    Выберите, какое расширение вы хотите загрузить:

    3DAbsenteeLandlordAbuseFilterAbuseFilterBypassAccessControlAccountInfoAControlImageLinkAcrolinxActiveAbstractAddHTMLMetaAndTitleAddMessagesAddPersonalUrlsAddThisAdManagerAdminLinksAdvancedMetaAdvancedSearchAJAXPollAjaxShowEditorsAkismetKlikAllTimeZonesAnchorHandlerAnonPrivacyAntiSpoofApiFeatureUsageApprovedRevsArraysArticleCreationWorkflowArticleFeedbackv5ArticleIndexArticleMetaDescriptionArticlePlaceholderArticleRatingsArticleToCategory2AthenaAuthorProtectAuth_remoteuserAutoCategoriseUploadsAutoCreateCategoryPagesAutoGalleryAutoProxyBlockAwesomenessBabelBaseHooksBatchUserRightsBetaFeaturesBiblioPlusBibManagerBlackoutBlockAndNukeBlockInactiveBlogPageBlueSpiceAboutBlueSpiceArticleInfoBlueSpiceArticlePreviewCaptureBlueSpiceAuthorsBlueSpiceAvatarsBlueSpiceBookshelfBlueSpiceCategoryCheckBlueSpiceCategoryManagerBlueSpiceChecklistBlueSpiceConfigManagerBlueSpiceContextMenuBlueSpiceCountThingsBlueSpiceCustomMenuBlueSpiceDashboardsBlueSpiceDistributionConnectorBlueSpiceEchoConnecto rBlueSpiceEmoticonsBlueSpiceExpiryBlueSpiceExportTablesBlueSpiceExtendedFilelistBlueSpiceExtendedSearchBlueSpiceExtendedStatisticsBlueSpiceFilterableTablesBlueSpiceFlaggedRevsConnectorBlueSpiceFoundationBlueSpiceGroupManagerBlueSpiceHideTitleBlueSpiceInsertCategoryBlueSpiceInsertFileBlueSpiceInsertLinkBlueSpiceInsertMagicBlueSpiceInsertTemplateBlueSpiceInterWikiLinksBlueSpiceMultiUploadBlueSpiceNamespaceCSSBlueSpiceNamespaceManagerBlueSpiceNSFileRepoConnectorBlueSpicePageAccessBlueSpicePageAssignmentsBlueSpicePageFormsConnectorBlueSpicePagesVisitedBlueSpicePageTemplatesBlueSpicePageVersionBlueSpicePermissionManagerBlueSpicePlayerBlueSpicePrivacyBlueSpiceQrCodeBlueSpiceRatingBlueSpiceReadConfirmationBlueSpiceReadersBlueSpiceReminderBlueSpiceRSSFeederBlueSpiceSaferEditBlueSpiceSignHereBlueSpiceSmartListBlueSpiceSMWConnectorBlueSpiceSocialBlueSpiceSocialArticleActionsBlueSpiceSocialBlogBlueSpiceSocialCommentsBlueSpiceSocialMicroBlogBlueSpiceSocialProfileBlueSpiceSocialRatingBlueSpiceSocia lResolveBlueSpiceSocialTagsBlueSpiceSocialTimelineUpdateBlueSpiceSocialTopicsBlueSpiceSocialWatchBlueSpiceSocialWikiPageBlueSpiceSubPageTreeBlueSpiceTagCloudBlueSpiceUEModuleBookPDFBlueSpiceUEModuleDOCXBlueSpiceUEModuleHTMLBlueSpiceUEModulePDFBlueSpiceUEModulePDFRecursiveBlueSpiceUEModulePDFSubpagesBlueSpiceUEModuleTable2ExcelBlueSpiceUniversalExportBlueSpiceUsageTrackerBlueSpiceUserInfoBlueSpiceUserManagerBlueSpiceUserSidebarBlueSpiceVisualDiffBlueSpiceVisualEditorConnectorBlueSpiceWatchListBlueSpiceWhoIsOnlineBlueSpiceWikiExplorerBoilerPlateBounceHandlerBreadCrumbsBreadCrumbs2BrickipediaExtraBuggyCalendarCampaignsCapiuntoCargoCarpCategoryLockdownCategorySortHeadersCategoryTagSorterCategoryTestsCategoryTreeCategoryWatchCatTalkCentralAuthCentralLoggingCentralNoticeChallengeChangeAuthorChangeUserPasswordsCharInsertCharRangeSpanCheckpointCheckUserChessBrowserCIFormsCirrusSearchCiteCiteDrawerCiteThisPageCitoidcldrCleanChangesCloneDiffCloseWikisCodeEditorCodeMirrorCodeReviewCognateCognitiv eProcessDesignerCollaborationKitCollapsibleSectionsCollapsibleVectorCollectionCommentboxCommentsCommentStreamsCommonMessagesCommonsMetadataConfigManagerConfirmAccountConfirmEditCongressLookupContactPageContentTransferContentTranslationContributionCreditsContributionScoresContributionsListContributorsCookieWarningCosmosProfileCountDownClockCrawlableAllPagesCreateAPageCreatedPagesListCreatePageCreatePageUwCreateRedirectCreateUserPageCreditsSourceCSSDarkModeDashikiDataTable2DataTransferDateDiffDebateTreeDebugModeDebugTemplatesDeleteBatchDeleteOwnDeletePagesForGoodDeleteUserPagesDescription2DeviceMapLogCaptureDiagnosisDidYouKnowDisableAccountDisambiguatorDiscourseDiscussionThreadingDiscussionToolsDismissableSiteNoticeDisplayTitleDisqusTagDocBookExportDonationInterfaceDoubleWikiDownloadCounterDPLforumDraftsDrawioEditorDumpsOnDemandDuplicatorDynamicPageListDynamicPageListEngineDynamicSidebarEchoEditAccountEditcountEditcountAdditionsEditNotifyEditSimilarEditSubpagesEditUserElasticaElectronPdf ServiceEmailAuthEmailAuthorizationEmailCaptureEmailDeletedPagesEmailDiffEncryptedUploadsEnhanceContactFormEntitySchemaErrorHandlerEtherpadLiteEventBusEventLoggingEventStreamConfigexamplesExpressionsExtensionDistributorExternalArticlesExternalDataExternalGuidanceExternalLinkConfirmExtJSBaseExtraLanguageLinkFanBoxesFarmerFavoritesFeaturedFeedsFiguresFileAnnotationsFileExporterFileImporterFileSystemImageServerFilterListUsersFilterSpecialPagesFixedHeaderTableFlaggedRevsFlexDiagramsFlexiSkinFlickrAPIFlowForcePreviewFormFormatDatesFormsFormWizardFundraiserLandingPageFundraisingEmailUnsubscribeFundraisingTranslateWorkflowGadgetsGenealogyGenerateMochaConfigGeoCrumbsGeoDataGeoGebraGettingStartedGit2PagesGitGadgetsGitwebGlobalBlockingGlobalCheckUserGlobalContribsGlobalContributionsGlobalCssJsGlobalNoticeGlobalPreferencesGlobalUsageGlobalUserGroupsGlobalUserPageGlobalUserrightsGlobalWatchlistGoogleAdSensegoogleAnalyticsGoogleAnalyticsMetricsGoogleAnalyticsTopPagesGoogleAuthenticatorGoogleCustomWi kiSearchGoogleDocs4MWGoogleDocTagGoogleGeocodeGoogleLoginGoogleNewsSitemapGooglePlacesGoogleSiteSearchGoToShellGPGMailGraphGraphQLGraphVizGravatarGroupsSidebarGroupWhitelistGrowthExperimentsGuidedTourGWToolsetHashTablesHAWelcomeHeaderTabsHeadScriptHelpCommonsHelpPagesHidePrefixHierarchyBuilderHighlightjsIntegrationHitCountersHostStatsHoverGalleryHreflangHSTSHtml2WikiHTMLetsHTMLTagsI18nTagsIdsIframePageImageCompareImageMapImageRatingImageTweaksImapAuthorizationImportArticlesImportFreeImagesImportUsersInboxIndexFunctionInlineCategorizerInputBoxInsiderInteractiveBlockMessageInterlanguageintersectionInterwikiInterwikiExtractsInterwikiSortingInviteSignupIPInfoJosaJSBreadCrumbsJsonConfigJsonDataKartographerLabeledSectionTransclusionLandingCheckLanguageSelectorLanguageTagLanguageToolLastModifiedLastUserLoginLdapAuthenticationLDAPAuthentication2LDAPAuthorizationLDAPGroupsLDAPProviderLDAPSyncAllLDAPUserInfoLegalLoginLibraryCheckoutLingoLinkedWikiLinkFilterLinkSuggestLinkSuggest2LinkTargetLink_A ttributesLinterLiquidThreadsListingsLiveChatLiveStreamingLocalisationUpdateLockAuthorLockdownLockDownEnglishPagesLogEntryLoginNotifyLogoFunctionsLookupUserLoopFunctionsLoopsMachineVisionMadLibMagicNoCacheMagicNumberedHeadingsMailgunMaintenanceMaintenanceShellMapSourcesMarkAsHelpfulMassEditRegexMassMessageMassMessageEmailMathMathSearchMediaFunctionsMediaModerationMediaSearchMediaUploaderMediaWikiChatMediaWikiFarmMementoMergeArticlesMessageCommonsMetadataMetaMasterMiniInviteMinimumNameLengthMintyDocsMissedPagesMixedNamespaceSearchSuggestionsMobileAppMobileDetectMobileFrontendMobileFrontendContentProviderModelMolHandlerMontserratFontMP3MediaHandlerMpdfMsCalendarMsCatSelectMsInsertMsLinksMsUploadMsWikiEditorMultiBoilerplateMultiLanguageManagerMultiMapsMultimediaPlayerMultimediaViewerMusicBrainzAuthMWVersionInfoMyVariablesNamespaceHTMLNamespacePathsNamespacePopupsNamespaceRelationsNamespaceSidebarNativeSvgHandlerNaturalLanguageListNavigationTimingNCBITaxonomyLookupNearbyPagesNegrefNetworkAu thNewestPagesNewsNewsBoxNewSignupPageNewsletterNewsTickerNewUserActionsNewUserMessageNewUserNotifNoBogusUserpagesNoCatNotebookViewerNotesLinkNoTitleNSFileRepoNukeNukeDPLNumberFormatNumberOfWikisNumbertextNumerAlphaOATHAuthOAuthOAuthAuthenticationOAuthRateLimiterOdbcDatabaseOfflineImportLexiconOnionsPorFavorOnlineStatusOnlineStatusBarOnlyRecentRecentChangesOOJSPlusOOJsUIAjaxLoginOpenBadgesOpenGraphMetaOpenIDOpenIDConnectOpenJsCadOpenLayersOpenStackManagerORESOrphanedTalkPagesPageAssessmentsPageAuthorsPageCheckoutPageCreationNotifPageDisqusPagedTiffHandlerPageExchangePageFormsPageImagesPageInCatPageLanguagePageMagicPageNameFormulaPageNoticePagePopupsPagePortPageSchemasPagesListPageToolsPageTriagePageViewInfoPaginateTextPanScrollParentPageParserFunctionsParserMigrationPasswordlessLoginPatrollerPCRGUIInsertsPdfHandlerPerformanceInspectorPerPageLanguagePerPageLicensePetitionPGFTikZPhabTaskGraphPhpHighlightPhpTagsPhpTagsFunctionsPhpTagsMapsPhpTagsSMWPhpTagsSPARQLPhpTagsStoragePhpTagsWidgetsP hpTagsWikiPictureGamePipeEscapePluggableAuthPluggableSSOPoemPollPollNYPolyglotPoolCounterPopcornEditorPopupAlertsPopupsPreferencesListPreziPrimarySourcesPrivateDomainsPronunciationRecordingProofreadPagePropPropertySuggesterProtectionIndicatorProtectSitePurgeClickThroughPushPushToWatchPwnedPasswordsQuantcastQuickGVQuickInstantCommonsQuickResponseQuickSearchLookupQuickSurveysQuizQuizGameRandomAreaRandomGameUnitRandomImageRandomImageByCategoryRandomInCategoryRandomPagesRandomSelectionReadingListsReassignEditsRecoinRefreshSpecialRegexBlockRegexFunRegexFunctionsRelatedArticlesRelatedSitesRelMicroformatRenameuserReplaceSetReplaceTextReportRevisionCommentSupplementRevisionSliderRightFunctionsRSSRTS5SlideShowSacredTextSafeDeleteSandboxLinkSarcasmSaveSpinnerScoreScreenplayScribeScribuntoScrollableTablesSearchExtraNSSearchStatsSectionDisqusSecureAuthSecureHTMLSecureLinkFixerSecurePollSecureSessionsSelectCategorySelectTagSemanticACLSemanticBundleSemanticDependencySemanticDrilldownSemanticGenealog ySemanticImageAnnotatorSemanticImageInputSemanticInternalObjectsSemanticPageSeriesSemanticRatingSemanticSifterSemanticWebBrowserSendGridSentrySharedHelpPagesShibbolethShortUrlShoutWikiAdsShoutWikiAPIShowMeShowRealUsernamesSidebarDonateBoxSideBarMenuSignWritingMediaWikiPluginSimpleCalendarSimpleChangesSimpleSAMLphpSimpleSortSiteMatrixSiteMetricsSiteSettingsSkinPerNamespaceSkinPerPageSlimboxThumbsSmiteSpamSocialLoginSocialProfileSofaSoftRedirectorSoftwareVersionSoundManager2ButtonSpamBlacklistSpamDiffToolSpamRegexSparkSparkPostSpecial404SpecialNamespacesSpellingApiSpellingDictionarySphinxSearchSplitPrivateWikiSportsTeamsSSLClientAuthenticationStaffEditsStaffPowersStalkerLogStandardDialogsStarterWikiStatCounterStickToThatLanguageStickyTOCStlHandlerStopForumSpamStringFunctionsEscapedStructuredNavigationSubpageFunSubPageList3SubpageSortkeySudoSurveySVGEditSwiftMailerSyntaxHighlight_GeSHiTabberTabsTEITemplateDataTemplateSandboxTemplateStylesTemplateWizardTestLanguageNameGrammarTextExtractsTe xtScrollerThanksThemeTheWikipediaLibraryThrottleOverrideTimedMediaHandlertimelineTimelineTableTimeMachineTinyMCETitleBlacklistTitleIconTitleKeyTocTreeTooltipTopTenPagesTorBlockTranslateTranslateSvgTranslationNotificationsTrustedXFFTweetANewTwitterCardsTwitterLoginTwitterTagTwnMainPageTwoColConflictUIFeedbackUILangCodeUnCaptchaUnicodeConverterUnifiedTaskOverviewUniversalLanguageSelectorUnusedRedirectsUpdateMediaWikiUploadBlacklistUploadsLinkUploadWizardUrlGetParametersUrlShortenerUserAgreementUseResourceUserExportUserFunctionsUserGroupsUserMergeUserOptionStatsUserPageEditProtectionUserPageViewTrackerUserProtectUserStatusUserThrottleVariablesVEForAllVersionCompareVideoViewsVIKIVikiSemanticTitleVikiTitleIconVipsScalerVisualEditorVoteNYWantedPagesFromNSWatchSubpagesWebAuthnWebChatWebDAVWebDAVClientIntegrationWebDAVMinorSaveWebToolsManagerWhitelistPagesWhiteSpaceWhoIsWatchingWhoopsWhosOnlineWidgetsWigo3WikEdDiffWikiArticleFeedsWikibaseWikibaseCirrusSearchWikibaseLexemeWikibaseLexemeCirrusSe archWikibaseManifestWikibaseMediaInfoWikibaseQualityConstraintsWikibaseStatementUpdaterWikiCategoryTagCloudWikidata.orgWikidataPageBannerWikiEditorWikiForumwikihieroWikiLambdaWikiLexicalDataWikiLoveWikiLovesMonumentsWikimediaApiPortalOAuthWikimediaBadgesWikimediaEditorTasksWikimediaEventsWikimediaIncubatorWikimediaMaintenanceWikimediaMessagesWikiSEOWikiShareWikisourceWikispeechWikispeechSpeechDataCollectorWikistoriesWikiTextLoggedInOutWikiToLDAPWindowsAzureStorageWorkflowsWSOAuthXAnalyticsXenForoAuthXSLYetAnotherKeywordsYotpoReviewsYouTubeZoomableImages

    Продолжить

    Выводит Википедию на рабочий стол на iOS | автор: Wikimedia Design

    Автор: Кэролайн Ли-Мадео и Дипак Мантена

    Когда Apple представила обновление виджетов с iOS 14, команда Wikipedia iOS была рада воспользоваться возможностью переосмыслить наши собственные.Имея возможность размещать виджеты прямо на главном экране, команде было любопытно, как можно выделить контент Википедии визуально привлекательным, понятным и актуальным образом. Для нашего первого набора виджетов домашнего экрана мы построили элементы из ленты обзора приложения, чтобы спроектировать и создать три новых виджета для iOS 14: «В этот день», «Картинка дня» и «Лучшее, что можно прочитать в Википедии».

    В этой записи блога мы расскажем о некоторых процессах создания виджетов — от разработки до реализации.

    Команда iOS определила следующие принципы дизайна в начале проекта, которые помогли нам решить, какие функции выделить в наших новых виджетах, а также определить приоритеты таких функций, как темный режим и поддержка всех трех размеров для каждого из наших виджетов. Эти принципы также лежали в основе визуального и интерактивного дизайна виджетов.

    Content first

    Этот принцип дизайна взят из Руководства по стилю дизайна Викимедиа.

    Люди приходят на проекты Викимедиа за своим контентом.Наши решения должны помочь облегчить его создание, потребление и совместное использование, не мешая им. Наш контент (факты, изображения, цитаты и т. Д.) Является нашим наиболее представительным элементом, и на него следует обращать особое внимание в наших решениях.

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

    Сфокусирован

    Главный экран может легко загромождаться или отвлекать. С таким множеством различных приложений, виджетов и уведомлений, уводящих читателей в разные стороны каждый раз, когда они открывают свой телефон, мы не хотели усиливать шум или создавать ненужное трение. Мы стремились создавать красивые виджеты, удобные для использования и ориентированные на один элемент или тип контента из Википедии.

    Dynamic

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

    Настраиваемый

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

    Когда пришло время приступить к разработке наших виджетов, мы обратились к докладу WWDC 2020 о разработке виджетов и информации, доступной в Руководстве Apple по человеческому интерфейсу. Мы хотели убедиться, что все разрабатываемые нами виджеты будут соответствовать не только нашим определенным принципам дизайна, но и руководящим принципам Apple по дизайну.

    Некоторые ключевые выводы из руководящих принципов Apple:

    • Используйте стандартное поле в 16 пунктов для удобного чтения и единообразия дизайна.
    • Сосредоточьтесь на выделении содержимого, которое будет часто меняться, чтобы виджеты не устаревали.
    • Создавайте дизайны как для светлого, так и для темного режима или сосредоточьтесь на создании дизайнов, которые будут работать в обоих режимах чтения.
    • Увеличивайте информацию с каждым размером виджета. Большие виджеты должны содержать больше информации, чем их маленькие аналоги.
    • SF Pro следует использовать поверх пользовательских шрифтов, чтобы виджеты выглядели как дома с виджетами из других приложений.
    • Помните, что имя связанного приложения будет отображаться под каждым виджетом, поэтому нет необходимости включать значки приложений или названия приложений в сам виджет, если виджет не связан с агрегатором контента.
    • Формы внутри виджета должны соответствовать радиусу угла виджета.
    • Помните, сколько глубоких ссылок поддерживает каждый размер виджета. Поскольку маленькие виджеты поддерживают только одну глубокую ссылку, хотя может быть место для добавления дополнительной информации, маленькие виджеты смогут ссылаться только на одно место.

    Мы использовали шаблоны, приведенные в Руководстве по человеческому интерфейсу, чтобы быстро начать процесс создания эскизов.

    Создание виджета «Картинка дня»

    Виджет «Картинка дня» содержит красивые изображения в высоком разрешении из Wikimedia Commons
    Vulpes vulpes image by Uoaei1

    Первым созданным нами виджетом был виджет «Картинка дня». Мы хотели начать с чего-то, что было бы легко реализовать, но при этом бросалось бы в глаза. Каждый день сообщество Wikimedia Commons выбирает свободно используемое изображение как «Картинку дня».’Эти изображения с высоким разрешением варьируются от составных изображений лунных затмений до поразительных пейзажей со всего мира (и многое другое).

    При разработке этого виджета мы хотели убедиться, что красивым изображениям отводится как можно больше места, а другая необходимая информация (например, авторские права и заголовок виджета) идет на втором месте. Этот виджет действительно воплощает наш принцип дизайна «Контент прежде всего», делая упор на изображения, а не на вторичную информацию. При разработке этого виджета мы также должны были учитывать, как кадрирование может повлиять на различные соотношения сторон и объекты фотографий.С каждым увеличением размера виджета отображается больше изображения, а при максимальном размере также отображаются первые три строки описания изображения. Нажав на виджет любого размера, вы попадете в полноэкранный режим избранного изображения в приложении.

    Для этого дизайна мы не делали отдельные дизайны в светлом и темном режимах, так как контент полностью за пределами поля, и мы обычно отображаем текст описания на темном фоне в приложении.

    Создание виджета «Сегодняшний день»

    Виджет «Сегодняшний день» выделяет событие, которое произошло в этот день в истории.

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

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

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

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

    Изменения, внесенные после получения отзывов от дизайнеров в Apple

    После завершения первого черновика наших виджетов мы получили очень полезные отзывы от дизайнеров Apple, которые предложили переместить шайбу на временной шкале вверх, чтобы лучше имитировать угол виджета. радиус.Это было изменение всего на несколько пикселей, но оно действительно помогло сбалансировать визуальный дизайн виджетов, и мы были очень благодарны за их отзывы.

    Разработка виджета «Самые читаемые»

    Виджет «Самые читаемые» показывает, какие статьи популярны в Википедии на вашем языке.

    Просмотр того, что мир читает в Википедии, является постоянным источником восхищения для многих читателей и редакторов (включая нас!). Ранее мы поддерживали виджет Top read в старом стиле iOS и были рады, что у нас было время обновить этот виджет и перенести его на главный экран.

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

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

    Создание виджетов

    Эти новые виджеты также дали команде инженеров возможность экспериментировать с новыми платформенными технологиями. Виджеты реализованы с использованием SwiftUI — нового набора инструментов пользовательского интерфейса Apple, который призван помочь преодолеть разрыв между дизайном и реализацией.Преобразование спарклайна Top read, который мы сейчас используем в приложении, в SwiftUI дало ценный практический опыт. Было приятно видеть, как потенциально сложные элементы интерфейса элегантно переводятся в новую структуру.

    Инженерные работы начались во время ранних бета-версий iOS 14. Самой большой проблемой внедрения, с которой мы столкнулись, было использование незавершенных инструментов разработки. Отладчик, инструмент, используемый во время разработки для проверки состояния запущенных виджетов, часто вообще не работал. Еще одна проблема, с которой мы столкнулись, заключалась в том, чтобы сбалансировать ожидание постоянно обновляемых данных виджетов с учетом времени автономной работы устройства.Мы по-прежнему заинтересованы в доработке — взносы всегда приветствуются.

    Повышенная многоязычная поддержка

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

    Более динамичный Виджет «В этот день»

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

    Идеи виджетов будущего

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

    Присоединяйтесь к нам в разработке и проектировании новых виджетов!

    Приложение «Википедия» для iOS является открытым исходным кодом, и мы всегда приветствуем участие! Если вы заинтересованы в разработке одного из наших уже разработанных виджетов или у вас есть идея чего-то нового, свяжитесь с нами! Вы можете следить за работой команды над Phabricator и создавать файлы или билеты на разработку там, или не стесняйтесь вносить свой вклад в проект на GitHub.

    Спасибо Люси Блэквелл, Рите Хо, Робин Шенбехлер, Мэтту Клейнману и Тони Севенер за помощь в редактировании. Спасибо Дипаку Мантене за написание раздела «Создание виджетов».

    UX Collective жертвует 1 доллар США за каждую статью, опубликованную на нашей платформе. Эта история стала вкладом в Школу дизайнеров мирового класса: бесплатную школу дизайна на уровне колледжа, ориентированную на подготовку молодых и талантливых африканских дизайнеров для местного и международного рынка цифровых продуктов.Создайте сообщество дизайнеров, в которое вы верите. Надстройка

    : виджеты скинов / Рекомендуется — Официальная Kodi Wiki

    1 Рекомендуемые позиции

    Использование: Window (Home) .Property (*)

    1.1 Фильмы

    Доступные этикетки
    Свойство: Кино Описание
    Рекомендуемый Фильм.% D.Title название фильма
    Рекомендуемый Фильм.% D. Год года выпуска
    Рекомендуемый фильм.% d. Жанр жанр фильма
    Рекомендуемый Фильм.% D.Studio киностудия
    Рекомендуемый фильм.% D.Plot сюжет фильма
    Рекомендуемый фильм.% D.PlotOutline сюжет фильма
    Рекомендуемый Фильм.% D.Tagline слоган фильма
    Рекомендуемый Фильм.% D.Работа длительность фильма
    Рекомендуемый фильм.% d. Рейтинг рейтинг фильма
    Рекомендуемый Фильм.% D. Трейлер трейлер фильма
    Рекомендуемый фильм.% D.Art (плакат) постер фильма
    Рекомендуемый фильм.% D.Art (фанарт) фильм фанарт
    Рекомендуемый фильм.% D.Art (clearlogo) фильм clearlogo
    Рекомендуемый Фильм.% D.Art (clearart) фильм clearart
    Рекомендуемый фильм.% d.Art (пейзаж) фильм 16: 9, пейзажное изображение
    Рекомендуемый фильм.% D.Art (баннер) фильм баннер
    Рекомендуемый Фильм.% D.Art (отменить) диск с фильмом
    Рекомендуемый Фильм.% D.Резюме возобновление фильма истина / ложь
    Рекомендуемый Фильм.% D.PercentPlayed просмотренных фильмов
    Рекомендуемый Фильм.% D.Смотрели просмотрено фильм правда / ложь
    Рекомендуемый фильм.% d.Файл имя файла и путь к фильму
    Рекомендуемый Фильм.% D.Path путь к фильму
    Рекомендуемый Фильм.% D.VideoCodec фильм кодек
    Рекомендуемый Фильм.% D.VideoResolution разрешение фильма
    Рекомендуемый Фильм.% D.VideoAspect соотношение сторон фильма
    Рекомендуемый Фильм.% D.AudioCodec фильм кодек
    Рекомендуемый фильм.% d.AudioChannels аудиоканалов фильмов

    1,2 Эпизоды

    Кодек видео

    Доступные этикетки
    Свойство: Эпизоды Описание
    Рекомендуемый эпизод.% D. Название название серии
    Рекомендуемый эпизод.% D. Эпизод номер серии
    Рекомендуемый эпизод.% D. Эпизод № сезон / серия (sxxexx)
    Рекомендуемый эпизод.% d. Сезон номер сезона
    Рекомендуемый Эпизод.% D Участок эпизод сюжета
    Рекомендуемый эпизод.% D.TVshowTitle название телешоу
    Рекомендуемый эпизод.% D. Рейтинг рейтинг серии
    RecommendedEpisode.% D.Art (thumb) уменьшенное изображение серии
    Рекомендуемый эпизод.% D.Art (tvshow.fanart) ТВ шоу фанарт
    Рекомендуемый эпизод.% d.Art (tvshow.poster) телешоу плакат
    Рекомендуемый эпизод.% D.Art (tvshow.banner) телешоу баннер
    Рекомендуемый эпизод.% D.Art (tvshow.clearlogo) телешоу clearlogo
    Рекомендуемый эпизод.% D.Art (tvshow.clearart) телешоу clearart
    Рекомендуемый эпизод.% D.Art (tvshow.landscape) ТВ шоу пейзаж
    Рекомендуемый эпизод.% d.Studio название студии
    Рекомендуемый эпизод.% D.Резюме указывает, является ли это частично просмотренным эпизодом (истина / ложь).
    RecommendedEpisode.% D.PercentPlayed процентов сыграно
    Рекомендуемый эпизод.% D. Файл имя файла и путь к серии
    Рекомендуемый эпизод.% D.Path Путь телешоу
    Рекомендуемый эпизод.% D.VideoCodec эпизодов
    Рекомендуемый эпизод.% d.VideoResolution разрешение эпизода
    Рекомендуемый эпизод.% D.VideoAspect соотношение сторон эпизода
    Рекомендуемый эпизод.% D.AdioCodec эпизод аудиокодек
    Рекомендуемый эпизод.% D.AudioChannels эпизодов аудиоканалов

    1.3 МузыкаВидео

    Доступные этикетки
    Свойство: MusicVideo Описание
    Рекомендуемая МузыкаВидео.% d. Название название видео
    Рекомендуемое МузыкаВидео.% D.Artist имя исполнителя
    Рекомендуемая МузыкаВидео.% D Год год выпуска
    Рекомендуемое МузыкаВидео.% D.Plot видео сюжет
    Рекомендуемое МузыкаВидео.% D. Жанр жанр видео
    Рекомендуемое МузыкаВидео.% D.Работа время выполнения
    Рекомендуемая МузыкаВидео.% d.Thumb видео большой палец
    Рекомендуемое МузыкаВидео.% D.Fanart видео фанарт
    Рекомендуемое МузыкаВидео.% D.File путь к видео + файл
    Рекомендуемое МузыкаВидео.% D.Path видеотракт

    1,4 Альбомы

    Доступные этикетки
    Свойство: Альбомы Описание
    Рекомендуемый альбом.% d. Название название альбома
    RecommendedAlbum.% D.Artist альбом исполнителя
    Рекомендуемый Альбом.% D. Жанр альбом жанра
    Рекомендуемый Альбом.% Д. Год года выпуска
    RecommendedAlbum.% D.RecordLabel метка
    Рекомендуемый Альбом.% D Описание описание альбома
    RecommendedAlbum.% d. Рейтинг рейтинг альбома
    RecommendedAlbum.% D.Thumb уменьшенное изображение альбома
    Рекомендуемый Альбом.% D.Fanart художник фанарт
    Рекомендуемый Альбом.% D.Play можно использовать для воспроизведения альбома

    1,5 Сдвинуть или открыть

    Пример кода для воспроизведения альбома:

      $ INFO [Window (Home) .Property (RecommendedAlbum.% D.Play)] 
     

    Сравнение виджетов IBM Lotus Notes с другими типами виджетов

    Показать Содержание

    Введение

    Многие люди путают понятия виджетов, веб-виджетов, гаджетов Google (далее называемых «гаджетами»), iWidgets и виджетов IBM® Lotus® Notes®, часто спрашивая, в чем различия и взаимосвязь между этими пятью терминами.В этой статье мы описываем их на некоторых практических примерах, помогая читателям получить более интуитивное понимание пяти терминов и оценить удобство, предлагаемое виджетами Notes.

    Обзор виджетов

    В общем, термин «виджет» относится к любому дискретному объекту. В компьютерном программировании виджет — это многократно используемый элемент графического пользовательского интерфейса, который отображает структуру информации и обеспечивает стандартизированное управление данными (согласно статье в Википедии « GUI widget .”)

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

    Виджеты бывают разных форм и размеров, но два основных типа на сегодняшний день — это:

    Веб-виджеты, которые предназначены для использования на веб-страницах.
    Виджеты рабочего стола, которые встраиваются в локальные компьютеры.

    Например, Widgetbox генерирует веб-виджеты, которые можно использовать практически на любом веб-сайте (см. Рисунок 1), а виджеты Apple Dashboard могут быть встроены только на рабочий стол вашего локального (Apple) компьютера (см. Рисунок 2 ).

    Рисунок 1. Widgetbox

    Рисунок 2. Виджеты Apple Desktop

    Существует также тип виджета, который запускается на смартфонах, например iOS с iPhone и Android от Google.

    На рисунке 3 показаны отношения между виджетом, веб-виджетом, гаджетом и iWidget. Веб-виджет — это своего рода виджет, а гаджет и iWidget — это своего рода веб-виджет. Мы обсудим их позже.

    Рис. 3. Взаимосвязь виджетов

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

    Веб-виджет

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

    Веб-виджеты также позволяют веб-разработчикам интегрировать любой код виджета, предоставленный сторонним веб-сайтом, и объединять все виды информации и ресурсов на своем собственном веб-сайте.Таким образом, посетителям Интернета не нужно посещать несколько разных веб-сайтов для получения информации.

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

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

    Гаджеты

    Гаджеты работают от Google, представляют собой миниатюрных объекта, созданных пользователями Google, и могут быть размещены на любой веб-странице. Короче говоря, гаджеты — это своего рода веб-виджет, созданный компанией Google; однако вы также можете добавить гаджеты на рабочий стол компьютера, если у вас установлено программное обеспечение «Google Desktop».

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

    Рисунок 4. Каталог гаджетов Google

    Google поощрял участие пользователей в использовании и создании гаджетов. Ваша ценность как пользователя хорошо представлена; имея лишь небольшой опыт веб-дизайна или программирования, вы можете создавать гаджеты самостоятельно, используя API гаджетов (см. рисунок 5).

    Рисунок 5. API гаджетов

    В листинге 1 приведен пример XML-кода гаджетов.

    Листинг 1. Пример кода гаджетов

     
      
     <Модуль> 
      
      
      
      
     Привет, мир! 
    ]]> 
      
      

    iWidgets

    Несколько браузерных фреймворков, каждая со своей собственной компонентной моделью, были независимо разработаны, что привело к прямой привязке компонентов к фреймворку.Эта потеря функциональной совместимости между компонентами и фреймворками создает ненужную проблему для пользователей, которые стремятся направить друг друга к полезным компонентам или стремятся перенести использование компонента в другую структуру.

    Спецификация iWidget разработана IBM и фокусируется на том, как обеспечить взаимодействие компонентов между платформами.

    Эта спецификация определяет простую компонентную модель и способы ее расширения для повышения совместимости без потери более мощных расширенных функций.

    iWidget - это также небольшое приложение или фрагмент динамического контента, который можно легко разместить на веб-странице. Это приложение многократного использования, предназначенное для работы в рамках, определенных спецификацией iWidget. Таким образом, iWidgets также являются еще одним видом веб-виджетов и соответствуют стандарту, определенному спецификацией iWidgets.

    Спецификация iWidget определяет характеристики разметки HTML, форматов метаданных и служб JavaScript для включения агрегирования компонентов iWidget в одно веб-приложение.Он может работать в разных браузерах и может использоваться для создания ситуативных приложений и в гибридной среде.

    Виджеты Notes

    Виджет Notes - мощная и полезная функция, предлагаемая IBM Lotus Notes 8.0.1 и более поздними версиями. В отличие от веб-виджетов и виджетов рабочего стола, виджеты Notes работают в Lotus Notes (отображаются в приложении боковой панели под названием «Мои виджеты», как показано на рисунке 6), а виджеты Notes основаны на других существующих ресурсах, таких как веб-сайты, базы данных Lotus Notes, гаджеты. , или кормит.

    Рисунок 6. Боковая панель «Мои виджеты» в Lotus Notes

    Действия виджета зависят от поставщика виджетов. Виджеты Notes поддерживают множество поставщиков (см. Рисунок 7), и исключительное удобство, предлагаемое виджетами Notes, отличает их от других виджетов.

    Рисунок 7. Поставщики виджетов Notes

    Есть три важных термина, которые нам нужно знать о виджетах Notes:

    • Каталог.Каталог - это специальная база данных Lotus Domino, содержащая виджеты (см. Рисунок 8). Пользователи просто перетаскивают виджет из каталога на боковую панель «Мои виджеты», чтобы установить его. Кроме того, виджеты Notes могут автоматически получать обновления из каталога, а пользователи могут публиковать свои собственные виджеты в каталоге.

    Рисунок 8. Каталог виджетов

    • Виджет. Виджет - это XML-документ. То, что делает виджет, зависит от поставщика виджета и информации о конфигурации, определенной в XML виджета, пример которого показан на рисунке 9.

    Рисунок 9. Виджет XML

    • Живой текст. Live Text - это настраиваемый механизм, который позволяет пользователям действовать со своими важными данными в документе Notes. Пользователи определяют, какие данные для них важны, создавая свои собственные распознаватели с помощью регулярных выражений.

    Lotus Notes автоматически распознает данные в документе Notes (например, в почте Notes), позволяя пользователям воздействовать на данные и запускать соответствующий виджет Notes.

    На рисунке 10 показана строка живого текста, подчеркнутая пунктирной линией в почтовом документе. Lotus Notes распознает, что эти данные являются адресом, и, если вы нажмете кнопку, этот Live Text запустит связанный виджет Notes.

    Рис. 10. Живой текст

    Виджеты Notes предлагают пользователям более удобные услуги, чем другие виды виджетов, а именно:

    • Простой, но эффективный способ создания виджетов Notes с использованием других существующих ресурсов (веб-сайты, гаджеты Google , корма и т. д.), не требуя от пользователей написания какого-либо кода или сценария. Мастера настройки виджетов Notes упрощают создание и настройку виджетов из представления Lotus Notes, веб-страниц, каналов, подключаемых модулей или даже гаджетов Google.

    Как показано на рисунке 11, при нажатии кнопки «Начало работы с виджетами» открывается окно «Начать настройку виджетов» (см. Рисунок 11). Здесь вы можете выбрать, какого поставщика виджетов вы хотите использовать для создания нового виджета, и просто следуйте указаниям мастера; вам не нужно писать код.

    Рисунок 11. Окно «Начать настройку виджетов»

    Lotus Notes также может автоматически распознавать тип вашего текущего контекста. Итак, если вы хотите создать виджет из гаджетов, вы просто открываете каталог Gadgets и нажимаете кнопку «Настроить виджет из текущего контекста», и Lotus Notes поможет вам создать новый виджет на основе поставщика гаджетов (как показано на рисунке 12). .

    Рисунок 12. Настройка виджета от поставщика гаджетов Google

    • Элегантный механизм перетаскивания для установки виджетов.Помимо перетаскивания виджетов из каталога виджетов (см. Рисунок 13), XML-документы виджетов можно перетаскивать из файловой системы или с веб-сервера; в основном My Widgets принимает URL-адреса, заканчивающиеся на «.xml».

    Рисунок 13. Перетаскивание

    • С помощью Live Text документы Notes могут автоматически распознавать важные данные для пользователей и позволять им действовать с ними, чтобы запускать соответствующие виджеты Notes.

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

    Но с виджетами Notes и Live Text документы Notes могут автоматически распознавать такие данные, так что вам просто нужно щелкнуть адрес в документе электронной почты, выбрать соответствующее действие, а затем вы сможете получить информацию напрямую ( см. рисунки 14 и 15).

    Рисунок 14. Включите параметр «Распознавать живой текст в этом документе»

    Рисунок 15.Запуск виджета с помощью Live Text

    Заключение

    Функции виджетов Notes, описанные в этой статье, делают виджеты Notes более надежными и удобными, чем виджеты, веб-виджеты, гаджеты и iWidget, и могут повысить индивидуальную и групповую продуктивность в вашей организации.

    Ресурсы

    Страница продукта developerWorks® Lotus Notes и Domino:
    http://www.ibm.com/developerworks/lotus/products/notesdomino/

    IBM Lotus Notes / Domino Forum:
    http: // www-10.lotus.com/ldd/nd85forum.nsf?OpenDatabase

    Статья на developerWorks «Создание составных приложений с виджетами Notes в IBM Lotus Notes 8.0.1»:
    http://www.ibm.com/developerworks/lotus/library/notes8 -widgets /

    Об авторах

    Ян Цао (Yan Cao) - инженер-программист, работающий над продуктами Lotus Notes и Lotus Expeditor в китайской лаборатории разработки IBM в Пекине. Вы можете связаться с ней для получения дополнительной информации по адресу [email protected] .

    Хэ Ван (He Wang) - инженер-программист, работающий над продуктами Lotus Notes и Lotus Expeditor в китайской лаборатории разработки IBM в Пекине.Вы можете связаться с ней для получения дополнительной информации по адресу [email protected] .

    Создание виджета - uGFX Wiki

    Можно реализовать собственные виджеты. Пользовательский виджет можно объявить и реализовать вне библиотеки µGFX. Это означает, что он может быть частью реального проекта и что нет необходимости вносить какие-либо изменения в саму библиотеку µGFX. В первой половине этой статьи будет объяснено, как реализованы виджеты и что необходимо для создания настраиваемого виджета.Вторая половина статьи представляет собой пошаговое руководство, которое покажет, как на самом деле реализовать собственный виджет на примере.

    Очень важно, чтобы вы прочитали статью GWIN и соответствующие подстатьи об окнах, виджетах и ​​контейнерах, прежде чем следовать этому руководству.

    Примечание: Если вы просто хотите изменить внешний вид существующего виджета, ознакомьтесь с WidgetStyles и пользовательскими функциями рендеринга.

    Теория работы

    Виджет состоит из трех основных частей: структура объекта , VMT и процедура рендеринга .Виджет обычно делится на два исходных файла: заголовочный файл и исходный файл (например, mywidget.h и mywidget.c . Заголовочный файл содержит структуру объекта , и функции общедоступного API. Исходный файл содержит VMT , процедуру рендеринга и реализации всех необходимых функций.

    Структура объекта

    Язык C не является объектно-ориентированным, но, тем не менее, можно без проблем писать объектно-ориентированное программное обеспечение.Философия состоит в том, чтобы создать структуру, которая представляет собой объект , и передать эту структуру в качестве первого параметра любой функции, которая должна иметь доступ к объекту. Виджет - это объект, поэтому ему нужна структура, определяющая объект. Единственное, что делает структуру объекта виджета структурой виджет , это то, что самое первое поле - это GWidgetObject :

     typedef struct StatusbarObject_t {
        GWidgetObject w; // Базовый класс
    } StatusbarObject; 

    Обратите внимание, что абсолютно обязательно , что GWidgetObject является самым первым полем в структуре.Это нужно для реализации наследования и полиморфизма. После этого первого поля вы можете добавить любое нужное поле в структуру объекта виджета. Например, ползунок добавит поля для хранения минимального , максимального и текущего значения . Виджет списка будет содержать здесь список элементов. Текстовое редактирование (строковое редактирование) будет удерживать текущую позицию курсора и так далее. С точки зрения объектно-ориентированного языка это частная область класса .

     typedef struct widgetObject_t {
        GWidgetObject w; // Базовый класс
    
        uint8_t myVariable1;
        char * someOtherStuff;
        uint16_t currentValue;
    } WidgetObject; 

    Сам GWidgetObject основан на GWindowObject , как описано в статье о виджетах.Следовательно, следующие атрибуты уже являются частью нашего WidgetObject , и их не нужно добавлять вручную:

    Объект виджета - это сам виджет: это то, что пользователь виджета создаст экземпляр. Объект виджета должен быть доступен для внешнего мира. Следовательно, объект виджета должен быть объявлен в файле заголовка (упоминаемом выше как mywidget.h ).

    Флаги

    Флаги нуждаются в некотором пояснении: GWindowObject содержит поле типа uint32_t и, следовательно, может представлять 32 флага.Некоторые из этих флагов используются модулем GWIN внутри для хранения определенной информации, такой как состояние включения, видимость, был ли виджет размещен динамически и т. Д. Однако первые 8 бит зарезервированы для внутреннего использования виджета. Например, виджет кнопки использует один из этих битов для записи состояния нажатия / отпускания. Виджет метки использует флаги для хранения информации о том, должна ли отображаться граница вокруг текста и т. Д.
    Флаги обычно используются для определения состояния виджета и поэтому часто используются в процедуре визуализации.Например, виджет PushButton использует флаги для сохранения состояния нажат / высвобожден . Поскольку можно создать настраиваемую процедуру визуализации вне виджета, автор настраиваемой процедуры визуализации должен иметь доступ к этим флагам. Следовательно, флаги должны быть определены в файле заголовка.

    VMT

    VMT (таблица виртуальных методов) - это механизм для реализации динамической привязки функций. В случае C это простая структура, содержащая указатели на функции. Техника VMT позволяет реализовать виртуальных метода в наших C-классах.VMT определяется модулем GWIN. Пользовательский виджет просто создает экземпляр этой структуры и заполняет указатели функций.
    Модуль GWIN определяет VMT для каждого типа элемента GWIN: окна, виджета и контейнера. Поскольку виджет наследуется от окна, VMT виджета фактически содержит окно VMT. Объявления VMT выглядят следующим образом (взято из /src/gwin/gwin_class.h ):

     / **
     * @brief Таблица виртуальных методов для окна GWIN
     * @ {
     * /
    typedef struct gwinVMT {
        const char * имя класса; / ** <Имя класса GWIN (обязательно) * /
        size_t size; / ** <Размер объекта класса * /
        void (* Уничтожить) (GWindowObject * gh); / ** <Функция уничтожения GWIN (необязательно) * /
        void (* Перерисовать) (GWindowObject * gh); / ** <Процедура перерисовки GWIN (необязательно) * /
        void (* AfterClear) (GWindowObject * gh); / ** <Функция последующей очистки GWIN (необязательно) * /
    } gwinVMT;
    / ** @} * /
    
    
    / **
     * @brief Таблица виртуальных методов для виджета
     * @note Виджет должен иметь функцию уничтожения.Либо используйте @p _gwidgetDestroy (), либо свою собственную функцию
     * который внутренне вызывает @p _gwidgetDestroy ().
     * @note Виджет должен иметь функцию перерисовки. Используйте @p _gwidgetRedraw ().
     * @note Если toggleroles! = 0, должны быть указаны ToggleAssign (), ToggleGet () и один или оба ToggleOff () и ToggleOn ().
     * @note Если dialroles! = 0, должны быть указаны DialAssign (), DialGet () и DialMove ().
     * @ {
     * /
    typedef struct gwidgetVMT {
        struct gwinVMT g; / ** <Это все еще GWIN * /
        void (* DefaultDraw) (GWidgetObject * gw, void * param); / ** <Стандартная процедура рисования (обязательная) * /
        #if GINPUT_NEED_MOUSE
            struct {
                void (* MouseDown) (GWidgetObject * gw, Coord_t x, corre_t y); / ** <Обработка событий нажатия мыши (необязательно) * /
                void (* MouseUp) (GWidgetObject * gw, corre_t x, Coordin_t y); / ** <Обработка событий мыши (необязательно) * /
                void (* MouseMove) (GWidgetObject * gw, corre_t x, corre_t y); / ** <Обработка событий перемещения мыши (необязательно) * /
            };
        #endif
        #if GINPUT_NEED_KEYBOARD || GWIN_NEED_KEYBOARD
            struct {
                void (* KeyboardEvent) (GWidgetObject * gw, GEventKeyboard * pke); / ** <Обработка событий клавиатуры (необязательно) * /
            };
        #endif
        #if GINPUT_NEED_TOGGLE
            struct {
                uint16_t toggleroles; / ** <Поддерживаемые роли для переключателей (0-> toggleroles-1) * /
                void (* ToggleAssign) (GWidgetObject * gw, роль uint16_t, экземпляр uint16_t); / ** <Назначить переключатель роли (необязательно) * /
                uint16_t (* ToggleGet) (GWidgetObject * gw, роль uint16_t); / ** <Вернуть экземпляр для конкретной роли (необязательно) * /
                void (* ToggleOff) (GWidgetObject * gw, uint16_t role); / ** <События отключения процесса (необязательно) * /
                void (* ToggleOn) (GWidgetObject * gw, uint16_t role); / ** <Процесс включения событий (необязательно) * /
            };
        #endif
        #if GINPUT_NEED_DIAL
            struct {
                uint16_t dialroles; / ** <Роли, поддерживаемые для циферблатов (0-> dialroles-1) * /
                void (* DialAssign) (GWidgetObject * gw, роль uint16_t, экземпляр uint16_t); / ** <Проверить роль и сохранить дескриптор экземпляра набора (необязательно) * /
                uint16_t (* DialGet) (GWidgetObject * gw, роль uint16_t); / ** <Вернуть экземпляр для конкретной роли (необязательно) * /
                void (* DialMove) (GWidgetObject * gw, роль uint16_t, значение uint16_t, uint16_t max); / ** <Обработка событий перемещения диска (необязательно) * /
            };
        #endif
    } gwidgetVMT;
    / ** @} * /
    
    
    / **
     * @brief Таблица виртуальных методов для контейнера
     * @note Контейнер должен иметь функцию уничтожения.Либо используйте @p _gcontainerDestroy (), либо используйте свою собственную функцию
     * который внутренне вызывает @p _gcontainerDestroy ().
     * @note Контейнер должен иметь функцию перерисовки gwin. Используйте @p _containerRedraw ().
     * @note Если toggleroles! = 0, должны быть указаны ToggleAssign (), ToggleGet () и один или оба ToggleOff () и ToggleOn ().
     * @note Если dialroles! = 0, должны быть указаны DialAssign (), DialGet () и DialMove ().
     * @ {
     * /
    typedef struct gcontainerVMT {
        gwidgetVMT gw;
        Coord_t (* LeftBorder) (GHandle gh); / ** <Размер левой границы (обязательно) * /
        corre_t (* TopBorder) (GHandle gh); / ** <Размер верхней границы (обязательно) * /
        corre_t (* RightBorder) (GHandle gh); / ** <Размер правой границы (обязательно) * /
        corre_t (* BottomBorder) (GHandle gh); / ** <Размер нижней границы (обязательно) * /
        void (* NotifyAdd) (GHandle gh, GHandle ghChild); / ** <Уведомление о добавлении ребенка (необязательно) * /
        void (* NotifyDelete) (GHandle gh, GHandle ghChild); / ** <Уведомление об удалении дочернего объекта (необязательно) * /
    } gcontainerVMT;
    / ** @} * / 

    Обратите внимание, как VMT отражают наследование элементов GWIN: Windows, виджеты и контейнеры.Если вы хотите реализовать виджет, вам не нужно реализовывать контейнер VMT.

    Поскольку VMT является частным для самого виджета, он объявлен в исходном файле (ранее назывался mywidget.c ). Чтобы иметь доступ к различным предопределенным VMT, исходный файл должен включать файл src / gwin / gwin_class.h : #include "src / gwin / gwin_class.h" .

    Указатели функций

    Объявления указателя функции в VMT определяют сигнатуру функции (тип возвращаемого значения и параметры, которые принимает функция).Чтобы иметь возможность зарегистрировать функцию в VMT, функция должна соответствовать этой точной сигнатуре. Давайте посмотрим на функцию для рендеринга / отрисовки виджета:

     void (* DefaultDraw) (GWidgetObject * gw, void * param); 

    Это означает, что наша собственная функция, которую мы напишем для рендеринга виджета, должна выглядеть так:

     void myRenderingFunction (GWidgetObject * gw, void * param) {...} 

    Обратите внимание, что указатель функции в VMT не указывает имя функции.Имя DefaultDraw используется только внутренним модулем GWIN для вызова функции. Вы можете присвоить функции любое имя, если подпись функции соответствует сигнатуре из объявления указателя функции.
    После того, как функция была объявлена, ее можно добавить в VMT, просто введя фактическое имя функции в соответствующее поле в VMT:

     void myRenderingFunction (GWidgetObject * gw, void * param) {
        ...
    }
    
    ...
    
    static const gwidgetVMT mywidgetVMT = {
        {
            "MyWideget", // Имя класса
            sizeof (MyWidgetObject), // Размер объекта
            _gwidgetDestroy, // Процедура уничтожения
            _gwidgetRedraw, // Процедура перерисовки
            0, // Процедура после очистки
        },
        myRenderingFunction, // подпрограмма рисования по умолчанию #if GINPUT_NEED_MOUSE
            {
                0, // Обработка событий нажатия мыши
                0, // Обработка событий мыши вверх
        ...
        ...
        ...
    }; 
    Доступные функции

    В следующей таблице содержится краткое объяснение каждого поля в VMT:

    Имя Тип Обязательно Описание
    имя класса const char * Да Имя класса (имя виджета).
    размер size_t Да Размер класса (обычно sizeof (WidgetObject) ).
    Уничтожить Указатель функции Да Функция, вызываемая при уничтожении объекта. Используйте _gwidgetDestroy в качестве значения по умолчанию.
    Перерисовать Указатель функции Да Функция, вызываемая при необходимости перерисовки. Обратите внимание, что для типов виджетов этот не является процедурой рендеринга . Используйте _gwidgetRedraw в качестве значения по умолчанию.
    После очистки Указатель функции Нет Функция, которая будет вызываться после перерисовки виджета.Может использоваться для ручной перерисовки некоторых объектов, поскольку окна не умеют рисовать сами себя. Пример: график.
    DefaultDraw Указатель функции Да Функция визуализации по умолчанию для виджета.
    MouseDown Указатель функции Нет Функция, которая вызывается, когда в области виджетов происходит событие , когда мышь опускается вниз . Координаты, передаваемые в качестве параметров, относятся к координатам виджета.
    MouseUp Указатель функции Нет Функция, которая вызывается, когда в области виджетов происходит событие «поднятие мыши» . Координаты, передаваемые в качестве параметров, относятся к координатам виджета.
    MouseMove Указатель функции Нет Функция, которая вызывается, когда событие перемещение мыши происходит внутри области виджетов. Координаты, передаваемые в качестве параметров, относятся к координатам виджета.
    KeyboardEvent Указатель функции Нет Функция, вызываемая при нажатии клавиши клавиатуры, когда виджет находится в фокусе. Обратите внимание, что источником нажатия клавиши может быть физическая клавиатура, подключенная через модуль GINPUT или виджет клавиатуры.

    Обратите внимание, что значение «Обязательно» просто указывает, может ли значение быть нулевым указателем или нет. Структура VMT должна быть полностью заполнена .См. Пример во второй части этой статьи.

    Процедура рендеринга

    Это та часть, которая обычно занимает больше всего времени при написании пользовательского виджета: процедура отрисовки. Виджет должен иметь по крайней мере одну встроенную процедуру рендеринга, которая зарегистрирована как процедура рендеринга по умолчанию в VMT. Подпрограмма рендеринга - это функция, которая рисует / раскрашивает виджет на экране. Эта функция вызывается модулем GWIN всякий раз, когда виджет необходимо перерисовать (например,когда видимость изменилась).

    Для получения дополнительной информации о процедурах рендеринга рекомендуется внимательно прочитать статью о пользовательских процедурах рендеринга.

    Создание виджета

    До сих пор мы смотрели, как определяется виджет и как заполняется VMT. Однако нам все еще нужно создать виджет, чтобы мы могли его использовать - виджету нужен конструктор. Конструктор (далее также называемый «функцией создания» ) отвечает за выделение и инициализацию объекта виджета и, следовательно, базового класса GWidgetObject .Функция create должна следовать нескольким правилам, чтобы слиться с модулем GWIN:

    • Возвращает GHandle (см. GHandle)
    • Требуется GDisplay * указатель (см. GDisplay)
    • Требуется указатель на объект виджета, который он инициализирует
    • Требуется указатель на структуру GWidgetInit (См. Инициализацию виджета)
    • Если указатель объекта виджета является нулевым указателем, функция должна динамически выделять объект виджета

    Пример может выглядеть следующим образом:

     GHandle mywidgetGCreate (GDisplay * g, WidgetObject * wo, GWidgetInit * pInit)
    {
        // Создаем базовый класс (фактический виджет)
        if (! (wo = (WidgetObject *) _ gwidgetCreate (g, & wo-> w, pInit, & mywidgetVMT))) {
            возврат 0;
        }
    
        // Инициализируем структуру объекта
        wo-> myVariable1 = 0;
        wo-> currentValue = 0;
    
        // Устанавливаем начальную видимость
        gwinSetVisible ((GHandle) wo, pInit-> g.Показать);
    
        // Возвращаем правильный GHandle
        return (GHandle) wo;
    } 

    Кроме того, рекомендуется иметь #define , который создает псевдоним для функции create, которая не принимает указатель GDisplay * , но вместо этого использует отображение по умолчанию:

     #define mywidgetCreate (so, pI) mywidgetGCreate (GDISP, so, pI) 

    Помимо этих правил, можно передать дополнительные параметры, которые изменяют поведение виджета. Например, виджет рамки принимает дополнительные параметры flags , которые определяют, есть ли в оформлении виджета кнопки закрытия и минимума-максимума.

    Примеры

    Различные примеры можно найти в разделе загрузок: https://community.ugfx.io/files/category/1-%C2%B5gfx-library/

    Как добавить виджет окна поиска в Википедии в Blogger ~ My Blogger Lab

    Вчера Blogger добавил новый виджет "Окно поиска в Википедии" в свой инвентарь гаджетов. Этот гаджет разработан исключительно официальными лицами Blogger, поэтому совершенно очевидно, что в нем не будет никаких жутких ошибок. Хотя это в точности минималистичный гаджет, поскольку он дает вам возможность искать только в Википедии на вашем сайте.Однако для просмотра определенной темы вам необходимо посетить Википедию, нажав на результаты поиска. Он работает почти так же, как система пользовательского поиска Google, и его внешний вид также несколько идентичен ей. Поэтому сегодня в этой статье мы покажем вам, как добавить виджет окна поиска в Википедии в Blogger?

    Судя по всему, вы, вероятно, ничего не получите от этого виджета, но он может повысить вовлеченность пользователей, потому что люди могут использовать этот гаджет для более глубокого поиска контента. Например, вы написали статью о Google Panda, но пользователи не сочли ее полезной или хотели получить более полную информацию по этой теме.Этот инструмент может помочь пользователям искать ту же тему в Википедии, чтобы получить по ней исчерпывающую информацию.

    Процесс добавления этого виджета в ваш блог очень прост. Нет необходимости возиться с кодированием, потому что он будет установлен всего за несколько кликов. Сначала перейдите на Blogger.com >> Ваш сайт >> Макет >> Добавить гаджет >> Еще гаджет. Теперь из списка виджетов вверху вы увидите виджет с названием «Википедия», просто выберите его и нажмите кнопку «Сохранить».

    Всякий раз, когда кто-то использовал бы окно поиска Википедии, оно заполняло результаты поиска под панелью поиска и ссылалось на соответствующую статью Википедии (в новой вкладке браузера). Это принесет пользу как вам, так и вашим пользователям.

    Согласно официальным данным Blogger,

    Наше последнее дополнение к галерее гаджетов - гаджет Википедия.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *