Как запустить API «microsoftTeams.media.scanBarCode» при загрузке приложения

#angular #microsoft-teams

Вопрос:

Я вызываю URL-адрес из своего приложения расширения внутри команд MS.

URL-адрес-это не что иное, как угловое приложение.

В начале приложения я хочу запустить этот определенный API microsoftTeams.media.scanBarCode .

Я могу запустить API при событии щелчка, но когда я запускаю OnInit , ничего не происходит.

Угловой код:

     config: microsoftTeams.media.BarCodeConfig = {
        timeOutIntervalInSec: 30,
    };

    constructor() {}

    ngOnInit(): void {
        microsoftTeams.initialize();
        microsoftTeams.media.scanBarCode((error: microsoftTeams.SdkError, decodedText: string) => {
            if (error) {
                if (error.message) {
                    console.log(' ErrorCode: '   error.errorCode   error.message);
                } else {
                    console.log(' ErrorCode: '   error.errorCode);
                }
                this.message = error;
            } else if (decodedText) {
                microsoftTeams.tasks.submitTask(decodedText);
            }
        }, this.config);
    }
 

Комментарии:

1. Не могли бы вы, пожалуйста, проверить ошибки консоли? Какую версию SDK Microsoft Teams вы используете?

2. Я "@microsoft/teams-js": "^1.9.0", также использую версию, с ошибкой, которую я получаю, 9000

3. Я. обновите версию до 1.10.0 прежней

4. На какой платформе вы столкнулись с этой проблемой?

5. Я запускаю это на мобильных устройствах (iPhone) — но вот в чем дело: API отлично работает при нажатии кнопки, но меня интересует инициализация страницы.

Ответ №1:

Я столкнулся с тем же самым, когда попытался использовать ваш код. Я предполагал, что что-то не инициализируется, и до этого вызывается scanBarCode. Поэтому я попытался добавить код в microsoftTeams.initialize(); обратный вызов.

 microsoftTeams.initialize(() => {
  const config: microsoftTeams.media.BarCodeConfig = {
    timeOutIntervalInSec: 30
  };

  // Method that enables the user to scan different types of barcode, and returns the result as a string.  
  microsoftTeams.media.scanBarCode((error: microsoftTeams.SdkError, decodedText: string) => {
    // If there's any error, an alert shows the error message/code
    if (error) {
      if (error.message) {
        alert(" ErrorCode: "   error.errorCode   error.message);
      } else {
        alert(" ErrorCode: "   error.errorCode);
      }
    } else if (decodedText) {
      setBarCodeValue(decodedText);
    }
  }, config);
});
 

Это сработало для меня. Пожалуйста, проверьте, решит ли это и вашу проблему.

Комментарии:

1. сработало очень хорошо!, спасибо