Интеграция функций местонахождения

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

Вы можете использовать Microsoft Teams JavaScript клиента SDK, который предоставляет средства, необходимые для вашего приложения, чтобы получить доступ к возможностям родного устройства пользователя. Используйте API расположения, такие как getLocation и showLocation, чтобы интегрировать возможности в приложении.

Преимущества интеграции возможностей расположения

Основное преимущество интеграции возможностей расположения в Teams приложений заключается в том, что он позволяет разработчикам веб-приложений на Teams платформе использовать функции расположения с помощью SDK Microsoft Teams JavaScript.

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

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

Чтобы интегрировать возможности расположения, необходимо обновить файл манифеста приложения и вызвать API. Для эффективной интеграции необходимо хорошо понимать фрагменты кода для вызова API расположения. Важно ознакомиться с ошибками ответа API для обработки ошибок в Teams приложении.

Примечание

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

Манифест обновления

Обновите Teams приложение manifest.jsфайле, добавив devicePermissions свойство и указав geolocation . Это позволяет приложению запросить необходимые разрешения у пользователей, прежде чем они начнут использовать возможности расположения.

"devicePermissions": [
    "geolocation",
],

Примечание

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

API расположения

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

API Описание
getLocation Предоставляет текущее расположение устройства или открывает выбор родного расположения и возвращает выбранное пользователем расположение.
showLocation Отображает расположение на карте.

Примечание

API getLocation() поставляется вместе со следующими конфигурациями вводаи allowChooseLocation showMap .
Если значение верно, пользователи могут выбрать allowChooseLocation любое расположение по своему выбору.
Если значение ложное, пользователи не могут изменить текущее расположение.
Если значение showMap false, текущее расположение извлекается без отображения карты. showMapигнорируется, allowChooseLocation если установлено, что это верно.

Опыт работы с веб-приложениями для возможностей расположения  Опыт работы веб-приложения для возможностей расположения

Обработка ошибок

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

Код ошибки Имя ошибки Условие
100 NOT_SUPPORTED_ON_PLATFORM API не поддерживается на текущей платформе.
500 INTERNAL_ERROR При выполнении необходимой операции встречаются внутренние ошибки.
1000 PERMISSION_DENIED Пользователю отказано в разрешении на Teams или веб-приложение.
4000 INVALID_ARGUMENTS API вызывается с неправильными или недостаточными обязательными аргументами.
8000 USER_ABORT Пользователь отменил операцию.
9000 OLD_PLATFORM Пользователь находится на старой сборке платформы, где нет реализации API. Обновление сборки должно решить проблему.

Фрагменты кода

Вызов getLocation API для получения расположения:

let locationProps = {"allowChooseLocation":true,"showMap":true};
microsoftTeams.location.getLocation(locationProps, (err: microsoftTeams.SdkError, location: microsoftTeams.location.Location) => {
          if (err) {
            output(err);
            return;
          }
          output(JSON.stringify(location));
});

Вызов showLocation API для отображения расположения:

let location = {"latitude":17,"longitude":17};
microsoftTeams.location.showLocation(location, (err: microsoftTeams.SdkError, result: boolean) => {
          if (err) {
            output(err);
            return;
          }
     output(result);
});

См. также