Поделиться через


Лучшие практики пользовательских действий

В этом руководстве описаны рекомендации по созданию и обновлению действий пользователей. Обзор функции "Активности пользователя" в Windows см. в разделе Продолжение активности пользователя, в том числе на разных устройствах. Кроме того, см. раздел действия пользователей Project Rome для реализации действий на других платформах разработки.

Замечание

Начиная с июля 2021 года пользователи с журналом действий, синхронизированным на устройствах Windows с помощью учетной записи Майкрософт (MSA), больше не смогут добавлять новые действия в Хронологию. Они по-прежнему смогут использовать временную шкалу и просматривать журнал действий (сведения о последних приложениях, веб-сайтах и файлах) на локальном компьютере. Учетные записи, подключенные к AAD, не будут затронуты.

Когда следует создавать или обновлять действия пользователей

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

Общие рекомендации

  • Запишите одно действие для группы связанных действий пользователей. Это особенно важно для музыкальных плейлистов или телевизионных шоу: одна Активность может обновляться через регулярные интервалы, чтобы отразить прогресс пользователя. В этом случае у вас будет одно действие пользователя с несколькими элементами журнала, представляющими периоды взаимодействия в течение нескольких дней или недель. Это также относится к действиям на основе документов, в которых пользователь достигает постепенного прогресса в вашем приложении.
  • Храните данные пользователей в облаке. Если вы хотите поддерживать действия между устройствами, необходимо убедиться, что содержимое, необходимое для повторного взаимодействия с этим действием, хранится в облачном расположении. Действия, относящиеся к устройству, будут отображаться на временной шкале на устройстве, где было создано действие, но не может отображаться на других устройствах.
  • Не создавайте Активности для действий, которые пользователям не потребуется возобновлять. Если приложение используется для выполнения простых однократных операций, которые не сохраняют состояние, возможно, вам не нужно создавать действие пользователя.
  • Не создавайте активности для действий, выполненных другими пользователями. Если внешняя учетная запись отправляет пользователю сообщение или @-упоминает их в вашем приложении, то для этого не следует создавать активность. Этот тип действия лучше реализуется уведомлениями Центра уведомлений.
    • Сценарии совместной работы являются исключением: если несколько пользователей работают над одним и тем же действием вместе (например, документом Word), то случаются случаи, когда другой пользователь вносит изменения после вашего пользователя. В этом случае может потребоваться обновить существующее действие, чтобы отразить изменения, внесенные в документ. Это приведет к обновлению существующих данных активности пользователя без создания новой записи в истории.

Рекомендации для конкретных типов приложений

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

  • приложения на основе документов — создайте одно действие для каждого документа, с одной или несколькими историями, которые отражают периоды использования. Важно обновлять вашу Активность по мере того как в документ вносятся изменения.
  • Игры — создайте одну активность для каждого игрового сохранения или мира. Если ваша игра поддерживает только одну последовательность уровней, вы можете со временем повторно опубликовать ту же Активность, хотя можете обновить данные контента, чтобы показать последний прогресс или достижения.
  • Утилиты. Если в вашем приложении нет ничего, что пользователям нужно было бы прервать и продолжить, вам не требуется использовать пользовательские активности. Хорошим примером является простое приложение, например Калькулятор.
  • Корпоративные приложения. Многие приложения существуют для управления простыми задачами или рабочими потоками. Создайте одно действие для каждого отдельного рабочего процесса, доступного через приложение (например, отчеты о расходах будут отдельными действиями, чтобы пользователь мог щелкнуть действие, чтобы узнать, был ли утвержден определенный отчет).
  • приложения воспроизведения мультимедиа — создание одного действия для каждой логической группировки содержимого (например, списка воспроизведения, программы или автономного содержимого). Основной вопрос для разработчиков приложений заключается в том, считается ли каждый фрагмент содержимого (телевизионный эпизод, песня) автономным контентом или частью коллекции. Как правило, если пользователь решит воспроизвести коллекцию или последовательное содержимое, коллекция в целом — это действие. Если они предпочитают играть один элемент контента, то этот элемент контента является активностью. Дополнительные рекомендации см. ниже.
    • музыка: альбом/исполнитель/жанр — если пользователь выбирает альбом, исполнителя или жанр и нажимает играть, эта коллекция является активностью. Не записывайте отдельную активность для каждой песни. Для коротких коллекций, таких как один альбом или коллекции, воспроизводимые в случайном порядке, может не потребоваться обновить действие, чтобы отразить текущую позицию пользователя. Для длительного последовательного воспроизведения, например альбома или списка воспроизведения, запись вашей позиции в альбоме может быть целесообразно.
    • музыка: умные плейлисты — приложения, которые проигрывают музыку в случайном порядке, должны записывать одну активность для этого плейлиста. Если пользователь воспроизводит плейлист во второй раз, создадут дополнительные записи журнала для того же действия. Запись текущей позиции пользователя в списке воспроизведения не требуется, так как упорядочивание является случайным.
    • сериал — если ваше приложение настроено на воспроизведение следующего эпизода после завершения текущего, вы должны написать одно действие для сериала. При воспроизведении различных эпизодов в нескольких сеансах просмотра вы обновите свою Активность, чтобы отразить текущее положение в серии, и будет создано несколько записей истории.
    • фильм — фильм является отдельной единицей контента и должен иметь собственную историю изменений. Если пользователь перестает смотреть фильм частично, желательно записать свою позицию. Когда они захотят возобновить его в будущем, функция может продолжить фильм на том месте, где они остановились, или даже спросить пользователя, хотят ли они продолжить или начать с самого начала.

Проектирование действий пользователей

Действия пользователей состоят из трех компонентов: URI активации, визуальных данных и метаданных содержимого.

  • URI активации — это URI, который можно передать приложению или среде, чтобы возобновить приложение с определенным контекстом. Как правило, эти ссылки принимают форму обработчика протокола для схемы (например, "my-app://page2?action=edit"). Разработчик должен определять, как будут обрабатываться параметры URI в их приложении. Дополнительные сведения см. в разделе по активации URI.
  • Визуальные данные, состоящие из набора обязательных и необязательных свойств (например, заголовка, описания или элементов адаптивной карточки), позволяют пользователям визуально идентифицировать действие. Ниже приведены рекомендации по созданию визуальных элементов для адаптивной карточки для вашей активности.
  • Метаданные содержимого — это данные JSON, которые можно использовать для группировки и извлечения действий в определенном контексте. Как правило, это принимает форму данных http://schema.org. Ниже приведены рекомендации по заполнению этих данных.

Рекомендации по проектированию адаптивных карточек

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

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

  • Использование изображений
    • При возможности используйте уникальное изображение для каждого действия. Имя приложения и значок автоматически отображаются рядом с карточкой действия; дополнительные изображения помогут пользователям найти нужные действия.
    • Изображения не должны содержать текст, который пользователь должен прочитать. Этот текст не будет доступен пользователям с потребностями специальных возможностей и не может быть выполнен поиск.
    • Если изображение не содержит текст и может быть обрезано около 2:1, его следует использовать в качестве фонового изображения. Это приводит к выделяющейся карте активности, которая будет заметной в истории. Изображение будет немного темным, чтобы убедиться, что текст остается видимым на карточке, и в этом случае рекомендуется использовать только имя действия, так как меньший текст может стать трудно читать.
    • Если изображение не может быть обрезано до 2:1, его следует поместить в карточку действия.
      • Если пропорции квадратные или портретные, закрепите изображение на правую сторону карточки без полей.
      • Если соотношение сторон горизонтальное, закрепите изображение в правом верхнем углу карточки.
  • Для каждого действия необходимо указать название, которое всегда должно быть отображено.
    • Это имя должно отображаться в левом верхнем углу карточки с помощью параметра большого полужирного текста. Важно, чтобы имя легко распознавалось, так как это единственная часть, которую пользователи увидят, когда действие отображается в сценариях Кортаны. Отображение того же имени на временной шкале упрощает пользователям обзор большого количества действий.
  • Используйте один и тот же визуальный стиль для всех действий из приложения, чтобы пользователи могли легко находить действия приложения на временной шкале.
    • Например, действия должны использовать один и тот же цвет фона.
  • Используйте дополнительные текстовые сведения экономно.
    • Избегайте заполнения карточки текстом и используйте только дополнительные сведения, которые помогают пользователям находить правильное действие или отражают сведения о состоянии (например, текущий ход выполнения конкретной задачи).

Рекомендации по метаданным содержимого

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

В следующем примере JSON-файл с метаданными содержимого, следуя стандартам Schema.org, представляет сценарий: «Джон играл в Angry Birds с Стивом».

// John played angry birds with Steve.
{
  "@context": "http://schema.org",
  "@type": "PlayAction",
  "agent": {
    "@type": "Person",
    "name": "John"
  },
  "object": {
    "@type": "MobileApplication",
    "name": "Angry Birds."
  },
  "participant": {
    "@type": "Person",
    "name": "Steve"
  }
}

Ключевые API