我正在使用新的Office-JS API進行Outlook插件,並且在構建身份驗證流程中,我發現在Outlook 2016 for Mac情況下,對話系統似乎無法正常工作。在Outlook 2016 for Mac中,Office.context.ui.messageParent是否被破解?
爲了清楚起見,我們使用Office Insider Fast Track構建,因爲它對Office-JS API有很多改進的支持。
我已經經歷了這個特定部分的多次迭代(其中大部分在Windows客戶端和Mac和Win上的Web客戶端都能正常工作),並且沒有運氣。該方案是:
- 列表項
- 在Outlook中打開任務窗格。
- 點擊登錄按鈕
- 打開新窗口,在指着我們的驗證門戶
- 用戶的跡象。
- 在身份驗證完成後,窗口重定向到一個頁面在辦公室外接範圍,使用身份驗證令牌回撥至父框架,可在其中進一步處理。
步驟1到步驟5在所有平臺上均正常工作。第6步拒絕在Outlook for Mac上使用。最初,這個流程是使用本地js window.open和window.postMessage apis構建的。如上所述,除了Outlook Mac之外,其他工作環境都可以使用,其中API似乎忽略了窗口選項,只需在打開任何瀏覽器的新選項卡中打開url並且永遠不要設置子窗口引用(window.open的結果爲null )。
如果沒有這個,我遵循SO上的建議來使用Office功能,displayDialogAsync和messageParent。在經歷了一些初始障礙之後,這也是在除Outlook Mac之外的每個平臺上安裝和運行的。
由於在Mac Outlook中沒有開發工具或JS控制檯支持,我按照這裏發現的建議Howto: Outlook 2016 for Mac - Debugging/View Console Logs in Outlook Add-in並設置了Vorlon以嘗試獲取一些上下文,添加了大量記錄點以嘗試獲取某些上下文。不幸的是,儘管Vorlon拿起我的認證登錄頁面作爲客戶端,並且看到了Office界面,但是我的控制檯輸出都沒有顯示,看起來好像JS根本沒有運行。
在這一點上,我不知道接下來要嘗試什麼。有沒有人遇到這個問題,或得到這個工作在Outlook 2016的Mac客戶端?
澄清背景:
- 所有身份驗證頁中列出了清單的應用程序域部分。
- 儘管初始版本直接指向我們的auth服務(這不是Mac工作的),但當前版本首先打開一個範圍內的pre-auth頁面,該頁面重定向到auth服務。
- Office-JS api的阻止警報,阻止它們用於顯示有用的信息。
- 通過此應用程序的所有版本進行身份驗證都適用於Windows上的Outlook 2016和Win和Mac上的OWA。
謝謝。
這聽起來像你正在做的一切正確。 (如果你還沒有,你可能想閱讀:https://dev.office.com/docs/add-ins/develop/dialog-api-in-office-add-ins)。另外,我們有一篇關於在Mac上使用Vorlon的最新文章:https://dev.office.com/docs/add-ins/testing/debug-office-add-ins-on-ipad-and-mac –
有些問題:(1)你是否說第6步不起作用,是否意味着你沒有重定向到本地頁面,或者你的意思是本地頁面打開,但是messsageParent似乎不起作用? (2)您的DialogMessageReceived處理程序是否執行任何會給您提供運行視覺指示的內容,例如關閉對話框? (3)如果你找不到方法來查看console.logs,你可以嘗試在相關頁面中放入一個div,並「登錄」到div的文本屬性。 –
對不起,我應該更清楚。是的,重定向工作,但沒有一個Javascript似乎做...什麼。我沒有想過用日誌信息寫出一個Div,至少可以提供_some_類的上下文。收到的消息從來沒有觸發。感謝這些鏈接,那些是我早期用來試圖找到可能出錯的那些鏈接。 切線方向,我試圖設置窗口關閉時的事件處理程序,但似乎並沒有在_any_平臺上觸發。 – Ava