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


Устранение неполадок надстроек на основе событий и отчетов о спаме

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

Проверка предварительных требований к функциям

Проверка требований к манифесту и JavaScript

  • Убедитесь, что в манифесте надстройки выполняются следующие условия.

    • Убедитесь, что URL-адрес расположения исходного файла надстройки является общедоступным и не заблокирован брандмауэром. Этот URL-адрес указан в элементе SourceLocation манифеста только надстройки "extensions.runtimes.code.page" или в свойстве унифицированного манифеста для Microsoft 365.

    • Убедитесь, что <Runtimes> элемент (манифест только надстройки) или "extensions.runtimes.code" свойство (унифицированный манифест) правильно ссылается на HTML-файл или файл JavaScript, содержащий обработчики событий. Классический Outlook для Windows и другие приложения Office под управлением Windows используют файл JavaScript во время выполнения, в то время как Office в Интернете, новый пользовательский интерфейс Outlook Для Mac и Новый Outlook в Windows используют HTML-файл. Пример настройки в манифесте см. в разделе "Настройка манифеста" статьи Автоматическое задание темы нового сообщения или встречи.

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

  • Для клиентов Windows (за исключением новых Outlook в Windows), когда функция JavaScript, указанная в манифесте для обработки события, выполняется, код в Office.onReady() и Office.initialize не выполняется. Мы рекомендуем добавить в обработчики событий любую логику запуска, необходимую обработчикам событий, например проверку версии клиента пользователя.

  • Убедитесь, что файл JavaScript для обработки событий вызывает .Office.actions.associate Это гарантирует, что имя обработчика событий, указанное в манифесте, будет сопоставлено с его аналогом JavaScript. Ниже приведен код в качестве примера.

    Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler);
    
  • В классических версиях Outlook для Windows до версии 2403 (сборка 17425.20000) код JavaScript надстроек на основе событий и отчетов о нежелательной почте поддерживает только спецификации ECMAScript 2016 и более ранних версий. Ниже приведены некоторые примеры синтаксиса программирования, который следует избегать.

    • Избегайте использования async инструкций и await в коде. Включение их в код JavaScript приведет к истечению времени ожидания надстройки.
    • Избегайте использования условного (тернарного) оператора , так как это предотвратит загрузку надстройки.

    Если надстройка содержит только один файл JavaScript, на который ссылается Outlook в Интернете, в Windows (новой и классической версии) и в Mac, необходимо ограничить код ECMAScript 2016, чтобы убедиться, что надстройка выполняется в более ранних версиях классического Outlook для Windows. Однако если у вас есть отдельный файл JavaScript, на который ссылается Outlook в Интернете, на Mac, на последние версии классического Outlook в Windows и новый Outlook в Windows, можно реализовать более позднюю спецификацию ECMAScript в этом файле.

Проверка конфигурации webpack

На клиентах Windows (за исключением нового Outlook в Windows), если надстройка на основе событий использует webpack для упаковки файлов и обработчики событий никогда не запускаются, настройте сервер разработки webpack надстройки для обслуживания статических файлов. Такой подход не позволяет webpack добавлять код в файлы надстройки, которые могут быть несовместимы со средой выполнения JavaScript. Настройте надстройку для использования статических файлов следующим образом:

  1. webpack.config.js В файле надстройки импортируйте модуль Node.jspath.

    const path = require("path");
    
  2. В том же файле настройте сервер разработки webpack для обслуживания статических файлов из dist папки.

    ...
    devServer: {
      static: {
        directory: path.join(__dirname, "dist"),
        publicPath: "/public",
      },
      ...
    }
    ...
    
  3. Запустите npm run build.

  4. В манифесте надстройки обновите путь к файлу JavaScript обработки событий, чтобы сослаться на встроенный файл, обслуживаемый из статического каталога. Например, https://localhost:3000/public/launchevent.js.

Отладка надстройки

  • При внесении изменений в надстройку имейте в виду следующее:

    • При обновлении манифеста удалите надстройку, а затем снова загрузите ее неопубликованное приложение. Сведения о том, как удалить неопубликованную надстройку из Outlook, см. в разделе Загрузка неопубликованных надстроек Outlook для тестирования. Если вы используете Outlook в Windows, необходимо также закрыть и повторно открыть Outlook.
    • Если вы внесете изменения в файлы, отличные от манифеста, закройте и снова откройте клиент Office в Windows или mac или обновите вкладку браузера, на котором выполняется Office в Интернете.
    • Если после выполнения этих действий вы по-прежнему не можете увидеть изменения, очистите кэш Office.
  • При тестировании надстройки в Office в Windows (за исключением нового Outlook в Windows):

    • Для надстроек на основе событий проверка Просмотр событий для любых сообщений об ошибках надстройки.

      1. В Просмотр событий выберитеПриложениежурналов> Windows.
      2. На панели Действия выберите Фильтровать текущий журнал.
      3. В раскрывающемся списке Журнал выберите нужный интервал времени журнала.
      4. Установите флажок Ошибка .
      5. В поле Идентификаторы событий введите 63.
      6. Нажмите кнопку ОК , чтобы применить фильтры.

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

    • Убедитесь, что файлbundle.js скачан в следующую папку в проводник. Текст, заключенный в [] , представляет применимые сведения о Office и надстройке.

      %LOCALAPPDATA%\Microsoft\Office\16.0\Wef\{[Office profile GUID]}\[Office account encoding]\Javascript\[Add-in ID]_[Add-in Version]_[locale]
      

      Совет

      • Для удобства чтения в этой статье имя файла называется bundle.js, но точное имя зависит от приложения Office.
        • Excel: bundle_excel.js
        • Outlook: bundle.js.
        • PowerPoint: bundle_powerpoint.js
        • Word: bundle_word.js
      • Нет прямого метода для определения GUID профиля Office и кодировки учетной записи, используемых в пути к файлуbundle.js . Наиболее эффективный подход к поиску файлаbundle.js надстройки — вручную проверять каждую папку, пока не будет обнаружена папка Javascript , содержащая идентификатор надстройки.
      • Файл bundle.js загружается в локальную папку Wef при первой установке надстройки. Он обновляется при каждом запуске или перезапуске приложения Office. Если файлbundle.js не отображается в папке Wef , а надстройка установлена или загружена неопубликованно, перезапустите Office. Для Outlook может потребоваться удалить надстройку, а затем снова загрузить ее неопубликованное приложение.
  • При тестировании надстройки на настольных клиентах (за исключением новых Outlook в Windows) включите ведение журнала среды выполнения, чтобы выявить возможные проблемы с манифестом и установкой надстройки. Инструкции по использованию ведения журнала в среде выполнения см . в разделе Отладка надстройки с помощью ведения журнала среды выполнения.

  • Задайте точки останова в коде для отладки надстройки. Инструкции для конкретной платформы см . в разделе Отладка надстроек на основе событий и отчетов о спаме.

Обратитесь за дополнительной помощью

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

См. также