Использование Office Dialog API с Angular 2 (для надстройки для Outlook) - PullRequest
0 голосов
/ 16 октября 2018

это основной вопрос:

У меня угловое приложение 2, и я пытаюсь использовать диалоговый API-интерфейс Office.По сути, у меня есть маршрут https://domain/success, который я хочу открыть в диалоговом окне.

Более конкретно, вот что я пытаюсь

Я нахожусь на маршруте https://domain/splash,, который отображает компонент-заставку.

В splashComponent.ts я вызываю this.microsoftService.doStuff

В microsoftService, метод doStuff, я вызываю

Office.context.ui.displayDialogAsync('https://domain/success');

Это должно сделать компонент успеха.

Однако я вижу компонент-заставку.URL-адрес диалога:

https://domain/success?_host_info=blahblah|isDialog|#/splash

Почему это так?И как мне сделать компонент успеха?

1 Ответ

0 голосов
/ 18 октября 2018

Это более частичная диагностика, чем решение, но для комментария это слишком сложно.

Независимо от того, добавляет ли Outlook параметр запроса, ваш маршрутизатор добавляет «# / splash» в конецURL, и именно поэтому он открывает всплеск.Я думаю, что проблема в конфигурации маршрутизации и стратегии маршрутизации.

С этим связан тот факт, что диалоговое окно Office открывается в совершенно отдельном экземпляре браузера с совершенно отдельным экземпляром механизма JavaScript и контекстом выполнения.Таким образом, полная вторая копия вашего веб-приложения открывается в диалоговом окне.Это означает, что маршрутизация root будет запущена.

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

Тем не менее, я рекомендую, чтобы при использовании Office Dialog API в надстройке на основе Angular вы отклонялись от принципа «одной страницы» и просто создавали страницу success.html, которую вы размещаете в своемдомен.Это мне намного проще и менее подвержено ошибкам.

Кстати, вам не нужно указывать собственный домен надстройки в <AppsDomains> в манифесте.Надстройка доверяет себе и всему, что находится в ее собственном домене.

Для получения дополнительной информации см. Использование API-интерфейса Office Dialog с одностраничными приложениями и клиентской маршрутизацией , а также остальнымиэта статья тоже.

...