14

我创建了一个 Angular 应用程序并想在其中使用JS API库。我想在 Office 365 Outlook 中使用这个应用程序。但是,我收到以下错误:

Uncaught TypeError: window.external.GetContext is not a function
OSF.InitializationHelper.getAppContext  @   o15apptofilemappingtable.js:11

我在浏览器上运行 index.html,最终我将从 Office 365 Outlook 内部运行它。下面是代码:

索引.html:

<!DOCTYPE html>
<html ng-app="app">

  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Office 365 APIs sample</title>
    <base href="/">

    ...
    ...

    <!-- JavaScript Office API -->
    <script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>

    <!-- App code. -->
    <script src="scripts/app.js"></script>
    <script src="controllers/homeController.js"></script>

  </head>
<body>
</body>
</html>

应用程序.js:

(function () {     
      console.log("STARTING...");
      var init = function (reason) {
            $(document).ready(function () {
                console.log("ready");
            });
        };

      try {
          Office.initialize = init; 
          if(!window.external.GetContext) {
              console.log('Not in office context');
              init();
          }
      } catch(e) {
          // when in office context unable to access external
          console.log(e);
      }
    });

请让我知道是否有人遇到此错误。通过在网上搜索,我找不到任何解决方案。

谢谢!

4

4 回答 4

7

我认为问题在于您是在浏览器窗口中打开它,而不是在 Office 应用程序中。我在使用 Excel 插件时遇到了同样的问题。该 api 不应该在 Office 应用程序之外正常工作。如果您需要您的应用程序在 Excel 之外工作 - 您可以检查网页是否在 Office 应用程序中打开,并且只有在这种情况下才加载 office api。

于 2015-11-18T22:29:43.023 回答
2

从浏览器运行代码时,我遇到了同样的问题。通过使用适当的清单 XML 文件在 MS Outlook 邮件客户端中运行代码解决了该问题。

于 2016-09-17T13:15:41.313 回答
1

您的应用程序应该在 office 365 中。否则它无法识别 Office.initialize 事件。这是开始的方式

Office.initialize = function (reason) {
        $(document).ready(function () {        
                app.initialize();
                // app begin here

        });
};

看起来您的应用程序是有角度的应用程序。因此应用程序需要在 Office.initialize 触发时手动引导

于 2016-04-21T12:47:26.407 回答
-1

我遇到了同样的问题。花一两个小时。我设法通过从目录中删除本地文件并从源代码管理中获取最新版本来解决。哪个确实恢复了 office.d.ts 文件,这对我有用

于 2015-10-21T13:46:18.810 回答