Веб-надстройка Office: функция Office.initialize () - PullRequest
0 голосов
/ 26 декабря 2018

Я изо всех сил пытаюсь понять, и не могу найти пример, чтобы точно соответствовать тому, что я пытаюсь достичь.Который должен иметь значок панели ленты MS Outlook, который при нажатии отображает диалоговое окно.Я поиграл с демо, выкинул лишнюю функциональность и запустил Hello World - но это JQuery, и я хочу использовать AngularJ для повторного использования большей части существующего приложения.

Во-первых, пример демонстрируетпохоже, что все они имеют что-то вроде

    <DesktopFormFactor>
      <FunctionFile resid="functionFile" />

Это похоже на функции, которые вызываются, когда пользователь нажимает значок на панели ленты.Правильно ли предположить, что мне это не нужно, если я просто использую тег <script src=> для включения таких файлов функций?

Мое приложение будет иметь только одно представление, тогда как вдемо все *.js файлы имеют что-то вроде

// The Office initialize function must be run each time a new page is loaded
Office.initialize = function (reason) {

Правильно ли предположить, что мне нужен только такой вызов один, в контроллере моего единственного представления?

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

1 Ответ

0 голосов
/ 26 декабря 2018

Использование FunctionFile

FunctionFile указывает файл исходного кода для операций, которые надстройка предоставляет через команды надстройки (кнопки ленты), которые выполняютФункция JavaScript вместо отображения пользовательского интерфейса.Надстройки могут решить либо отображать некоторый пользовательский интерфейс на панели задач, либо выполнять функцию javascript в фоновом режиме.Для надстроек без пользовательского интерфейса вам потребуется указать файл функции.

В вашем случае FunctionFile можно игнорировать.

Использование Office.initialize

Надстройки Office включают библиотеку Office.js, и библиотека ожидает, что ваш код запуска не будетвызывать любые API до полной загрузки библиотеки.Ваш код может гарантировать загрузку библиотеки двумя способами.

  1. Использование Office.initialize : событие инициализации возникает, когда библиотека Office.js полностью загружена и готовадля взаимодействия с пользователем.Вы можете назначить ему обработчик.
  2. Использовать Office.onReady : Office.onReady () - это асинхронный метод, который возвращает объект Promise, в то время как он проверяет, находится ли библиотека Office.jsполностью загружен.

Примеры:

Office.initialize = function () {
    // Office is ready
};

или

Office.onReady(function(info) {
    if (info.host === Office.HostType.Outlook) {
        // Based on host, decide what to display.
    }
    if (info.platform === Office.PlatformType.PC) {
        // Make minor UI changes, if required.
    }
});

В вашем случае вы можете использовать initialize / onReady один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...