簡體   English   中英

使用Angular 4的Outlook加載項

[英]Outlook Add-in using Angular 4

我正在使用angular4開發Outlook加載項。 我無法理解使用角度開發辦公室插件的幾個概念。

  1. 我是否需要在main.ts中實現Office.initializeOffice.OnReady() ,因為無論何時啟動我的應用程序,我都會收到錯誤,我沒有實現Office.OnReady盡管我使用了Offize.initialize
  2. 每次在我的應用程序中使用某些辦公組件時,是否需要使用Office.initialize
  3. 如果我在開發模式下運行我的應用程序而不是生產模式,是否會影響我的加載項?
  4. 是否可以在Office對話框中運行我的角度應用程序,而不是在任務窗格中運行,即我的任務窗格中有一個簡單的html(只包含一個按鈕),當我單擊該按鈕時,它會在對話框中打開我的角度應用程序。
  5. 或者我可以在對話框中打開我的應用程序的單個組件嗎? 如果是,有人可以用示例代碼解釋。
  1. 您只需要實現其中一個。 在正確初始化Office之前,您可能正在嘗試訪問某些辦公方法。 我一般喜歡做的是有一個帶有微調器的加載屏幕,只有辦公室初始化后才能從該屏幕導航。

     Office.initialize = function(reason) { window.location.hash = 'apploaded'; } 
  2. 不 - 你只需要初始化一次,除非你正在進行服務器刷新。 只要你留在你的應用程序的上下文而不是刷新整個應用程序但只是在組件之間導航,你應該沒問題。

  3. 它可能,特別是如果在本地,你的意思是你在沒有Office上下文的情況下這樣做(所以你不在客戶端)。 我通常如何解決這個問題的方法是永遠不要直接訪問Office對象,而是始終通過一個服務,如果Office對象/或其子屬性發生錯誤,它不會失敗。 而不是

     // calling directly in some component office.context.mailbox.item.to.getAsync 

    我會做

     OfficeService.GetAsync() { if (Office && Office.context && Office.context.mailbox && ...) { // call real method } else { console.log('Detected local mode - without office context') // do a fake test operation instead of the real thing. } } 
  4. 查看functionFile 這為您提供了功能區中的按鈕,您可以單擊該按鈕並執行基本功能。 它仍然會將html加載到一個看不見的瀏覽器中,但在這種情況下你不會得到一個任務窗格。 這應僅在客戶端子集中支持,而不是一切。

  5. 有幾種方法可以執行此操作,您只需將清單中的任務窗口條目URL指向該組件URL即可。 像這樣

     <SourceLocation DefaultValue="https://randommailaddin.org/component"/> 

並將/component路由映射到您的組件,因此當用戶單擊該按鈕時,它只會加載該組件。 您仍然需要初始化辦公室上下文,否則您的功能將無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM