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 内から実行します。以下はコードです:

index.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>

app.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);
      }
    });

誰かがこのエラーに遭遇した場合はお知らせください。Webで検索しても解決策が見つかりませんでした。

ありがとう!

4

4 に答える 4

7

問題は、Office アプリ内ではなく、ブラウザー ウィンドウで開いていることだと思います。Excelアドインでも同じ問題が発生しました。API は、Office アプリケーション以外では正しく動作しないはずです。アプリケーションを Excel の外部で動作させる必要がある場合は、Web ページが 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

同じ問題が発生しました。1、2時間かけてください。ディレクトリからローカルファイルを削除することで解決し、ソース管理から最新バージョンを取得しました。office.d.tsファイルを復元したのはどれで、それでうまくいきました

于 2015-10-21T13:46:18.810 に答える