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


Создание приложений для нескольких устройств на платформе Project Rome

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

С помощью приложения для нескольких устройств вы можете:

  • использовать API веб-каналов активности Project в Microsoft Graph;
  • Чтение и запись действий пользователей, опубликованных группой приложений, зависящих от платформы, с помощью пакета SDK Project Rome для Windows, Android и (или) iOS.
  • выбирать целевые приложения, используя возможности ретрансляции устройств в Project Rome при помощи пакета SDK Project Rome для Android или iOS.

Возобновление работы на разных устройствах с помощью API веб-каналов активности

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

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

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

Выбор подходящего экрана с помощью API ретрансляции устройств

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

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

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

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

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

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

Внешний JSON-файл (ограниченная функциональность)

Вы можете использовать указанные ниже возможности Project Rome на всех поддерживаемых платформах, используя приложение для нескольких устройств, управляемое как внешний JSON-файл.

  • Чтение и запись действий пользователей со всех платформ при помощи API веб-каналов активности
  • Запись действий пользователей со всех платформ (Windows, iOS, Android, Интернет) при помощи пакетов SDK Project Rome.

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

Настройка приложения для нескольких устройств при помощи Центра разработки для Windows

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

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

Домен, используемый в качестве идентификатора приложения для нескольких устройств, должен быть либо доменом верхнего уровня, либо поддоменом, а также должен быть защищен протоколом TLS. Примеры: https://contoso.com или https://myapp.contoso.com, но НЕ https://myapp.contoso.com/somepath. У каждого приложения для нескольких устройств должен быть уникальный домен (или поддомен). Однако вы можете выбирать, какие приложения связывать с тем или иным приложением для нескольких устройств, учитывая нужные кроссплатформенные функции.

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

Подтверждение права собственности на домен в Центре разработки для Windows

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

Чтобы подтвердить, что домен приложения принадлежит вам, необходимо добавить запись DNS TXT для домена с уникальным значением, предоставленным вам в Центре разработки. Это значение уникально для каждого приложения. Чтобы определить уникальное значение для вашего приложения, войдите в Центр разработки для Windows и выберите Взаимодействие между устройствами в меню слева и приступите к настройке нового приложения для нескольких устройств. Указав имя для нового приложения, выберите в подменю Подтвердить домен приложения для нескольких устройств. На этой странице отображаются инструкции со встроенным уникальным значением (например, MS=95ff4557-813f-45a5-b2f6-1f94170b979f). Обязательно скопируйте значение целиком, включая строку "MS=".

Шаг 2. Соберите идентификаторы приложений для своей платформы

Соберите идентификаторы всех приложений для определенных платформ, которые будут использовать API Project Rome.

Вам потребуется идентификатор каждого приложения для определенной платформы, чтобы связать их с удостоверением приложения для нескольких устройств. С помощью Центра разработки для Windows вы сможете выбрать один из универсальная платформа Windows приложений, связанных с вашей учетной записью разработчика, но вам потребуется вручную указать идентификаторы приложений для любого из приложений Win32, iOS или Android и определить основной URL-адрес для любых связанных веб-приложений. С каждой платформой можно связать до 10 идентификаторов.

Чтобы найти идентификаторы:

Шаг 3. Настройка поддержки учетной записи Майкрософт или Microsoft Entra ID

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

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

Если вы создаете приложение, поддерживающее Microsoft Entra пользователей, и не используете конвергентный идентификатор приложения, выданный через портал регистрации приложений, необходимо указать GUID для идентификатора приложения Azure. Чтобы определить GUID клиента, выполните указанные ниже действия.

  1. Войдите в центр администрирования Microsoft Entra .
  2. Разверните меню >Удостоверение, выберите Приложения>Регистрация приложений>Новая регистрация.
  3. Выберите приложение из списка и найдите идентификатор приложения (GUID) в разделе Основное.

Шаг 4. Настройка поддержки кроссплатформенных push-уведомлений (необязательно)

Если вы решили настроить приложение для нескольких устройств в Центре разработки для Windows, вы можете включить поддержку кроссплатформенных push-уведомлений, указав учетные данные, используемые с API для платформ push-уведомлений Android и iOS. Они необходимы, если вы используете пакеты SDK Project Rome для iOS и Android и хотите не только публиковать действия пользователей. Если используются только API Project Rome для Microsoft Graph, то выполнять это действие не требуется. С каждой платформой можно связать до 10 наборов учетных данных.

Важно!

Не храните учетные данные push-уведомлений во внешнем JSON-файле.

Чтобы найти идентификаторы:

Примечание.

Если вы используете Firebase для отправки push-уведомлений на устройства iOS с учетными данными Android, необходимо указать учетные данные APNs в рамках конфигурации приложений на нескольких устройствах.

Настройка приложения для нескольких устройств с помощью внешнего JSON-файла

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

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

Идентификатор приложения для нескольких устройств представляется как принадлежащий вам домен. Он должен быть либо доменом верхнего уровня, либо поддоменом, а также должен быть защищен протоколом TLS. Примеры: https://contoso.com или https://myapp.contoso.com, но НЕ https://myapp.contoso.com/somepath. У каждого приложения для нескольких устройств должен быть уникальный домен (или поддомен). Однако вы можете выбирать, какие приложения связывать с тем или иным приложением для нескольких устройств, учитывая нужные кроссплатформенные функции.

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

Подтверждение права собственности на домен с помощью внешнего JSON-файла

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

Система кэширует содержимое JSON-файла во избежание частой отправки запросов в домене. Если настроены заголовки кэша HTTP, служба будет учитывать их при определении времени обновления кэша. Если же они не настроены, служба будет обновлять кэш каждые 24 часа.

Шаг 2. Сбор идентификаторов приложений для определенных платформ и составление JSON-файла

Соберите идентификаторы всех приложений для определенных платформ, которые будут использовать API веб-каналов активности и/или ретрансляции устройств.

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

Составление файла cross-platform-app-identifiers

Сам JSON-файл должен называться cross-platform-app-identifiers и размещаться в корне домена HTTPS. Содержимое файла представляет собой JSON-массив сопоставлений между поддерживаемыми приложением платформами и идентификаторами приложений на этих платформах. Составляя файл, включите объект JSON для каждого приложения и каждой платформы, где будут использоваться API Project Rome.   Файл может содержать несколько объектов JSON с одним и тем же идентификатором платформы. Например, приложения для iPhone и iPad должны быть добавлены как отдельные объекты JSON, в каждом из которых указана платформа iOS. Идентификатор веб-платформы показан в приведенном ниже примере.   Указывать объект JSON для всех платформ необязательно. Включайте объекты JSON для тех платформ, на которых приложение использует API Project Rome. Например, если у вас нет клиента приложения для платформы Android, запись в файле для Android не требуется.   Приведенный ниже пример включает все действительные идентификаторы платформ, принимаемые на данный момент. Объекты JSON с недопустимым значением платформы исключаются.

{"platform":"windows_universal", "application":"Microsoft.Contoso_8wekyb3d8bbwe"},
{"platform":"windows_win32", "application":"DefaultBrowser_NOPUBLISHERID!Microsoft.Contoso.Default"},
{"platform":"android","application":"com.example.myapp"},
{"platform":"ios", "application":"com.example.myapp"},
{"platform":"web", "application":"https://contoso.com"},
{"platform":"web", "application":"https://chat.contoso.com"},
{"platform":"msa", "application":"00000000603E0BF"},
{"platform":"msa", "application":"48932b46-98b1-4020-9be4-cc7a65643c9e"},
]

Чтобы найти идентификаторы:

Шаг 3. Настройка поддержки учетной записи Майкрософт или Microsoft Entra ID

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

{"platform":"windows_universal", "application":"Microsoft.Contoso_8wekyb3d8bbwe"},
{"platform":"windows_win32", "application":"DefaultBrowser_NOPUBLISHERID!Microsoft.Contoso.Default"},
{"platform":"android","application":"com.example.myapp"},
{"platform":"ios", "application":"com.example.myapp"},
{"platform":"web", "application":"https://contoso.com"},
{"platform":"web", "application":"https://chat.contoso.com"},
{"platform":"msa", "application":"00000000603E0BF"},
{"platform":"msa", "application":"48932b46-98b1-4020-9be4-cc7a65643c9e"},
]

Вы можете найти существующие идентификаторы приложений или клиентов или подготовить новые, войдя на портал регистрации приложений с учетной записью разработчика. После входа вы сможете просмотреть идентификатор приложения или клиента для любого приложения. Поддерживаются как идентификаторы Live SDK (шестнадцатеричные значения), так и конвергированные идентификаторы приложений (GUID). Используйте тип платформы msa при добавлении идентификаторов, используемых для включения поддержки учетной записи Майкрософт или Microsoft Entra ID, как показано в предыдущем примере.

Примечание.

Если вы создаете приложение, поддерживающее Microsoft Entra пользователей, и не используете идентификатор конвергентного приложения, выданного на портале регистрации приложений, необходимо указать GUID для идентификатора приложения Azure. Для такого идентификатора также следует задать тип платформы msa.

Чтобы найти GUID в Центр администрирования Microsoft Entra для клиента, выполните следующие действия:

  1. Войдите в Центр администрирования Microsoft Entra администратора.
  2. Разверните меню >Удостоверение Выберите приложения>Регистрация приложений.
  3. Выберите приложение из списка. Вы можете просмотреть идентификатор приложения (GUID) в разделе Основное.

Кодирование файла cross-platform-app-identifiers

Если действия не возобновляются в нужных собственных приложениях на разных платформах или вам не удается считывать действия, опубликованные всеми участниками группы, возможно, JSON-файл не анализируется должным образом. Создавая его, обязательно сохраните файл cross-platform-app-identifiers с кодировкой "Юникод (UTF-8, без сигнатуры), кодовая страница 65001".

Обновление JSON-файла cross-platform-app-identifiers

Система кэширует содержимое JSON-файла во избежание частой отправки запросов в домене. Если настроены заголовки кэша HTTP, служба будет учитывать их при определении времени обновления кэша. Если же они не настроены, служба будет обновлять кэш каждые 24 часа.

Настройка клиента приложения

При использовании клиентских API для Windows, iOS или Android необходимо убедиться, что для клиента приложения задано значение узла, представляющее удостоверение приложения для нескольких устройств (например, contoso.com).

Приложения Microsoft Graph

Если ваше приложение использует API веб-каналов активности в Microsoft Graph, то значение узла необходимо передавать в свойстве activitySourceHost. Дополнительные сведения см. в статье Тип ресурса activity.

Универсальные приложения для Windows

Если у вас есть приложение для Windows, то перед публикацией данных необходимо настроить значение узла в манифесте приложения. Дополнительные сведения см. в статье uap5:UserActivity.

Поддержка конфигурации приложений для нескольких устройств

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

Устранение неполадок

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

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

API веб-каналов активности асинхронно принимает конфигурацию приложения для нескольких устройств, поэтому ошибки конфигурации могут быть не сразу замечены при публикации действий пользователя. Если службе не удастся получить JSON-файл по причине ошибки протокола TLS или неправильного форматирования, все опубликованные действия будут связаны только с идентификатором приложения, опубликовавшего действия. Что касается действий, опубликованных через Microsoft Graph, это идентификатор приложения учетной записи Майкрософт, используемый для авторизации запросов к Microsoft Graph. В случае действий, опубликованных с помощью клиентских API, activity.applicationId запишет идентификатор только того приложения для определенной платформы, которое опубликовало действие. Это препятствует выполнению операций чтения и записи с действиями из каких-либо других приложений для определенных платформ, определенных в конфигурации приложения для нескольких устройств.

Платформа не инициализируется на Android или iOS

Интерфейсу API ретрансляции устройств для Android или iOS требуется конфигурация приложения для нескольких устройств, чтобы создавать экземпляры подключений к приложению Android или iOS. Если платформе не удается инициализироваться, убедитесь, что вы правильно указали идентификаторы приложений учетной записи Майкрософт и учетные данные push-уведомлений, используемые для настройки приложения для нескольких устройств в Центре разработки для Windows. Кроме того, в качестве значения узла клиентских приложений укажите домен, определяющий ваше приложение для нескольких устройств.