새로운 Office-JS API를 사용하여 Outlook 추가 기능을 만들고 인증 흐름을 구축하는 중 Outlook 2016 for Mac의 경우 대화 시스템이 제대로 작동하지 않는 것으로 나타났습니다.Mac 용 Outlook 2016에서 Office.context.ui.messageParent가 손상 되었습니까?
Office Insider Fast Track 빌드는 Office-JS API에 대한 지원 기능이 향상되어 있으므로 분명히 사용하고 있습니다.
저는이 특정 부분을 여러 번 반복 해봤습니다. (대부분 Windows 클라이언트와 Mac 및 Win의 웹 클라이언트에서 잘 작동했습니다) 운이 없었습니다. 시나리오는 다음과 같습니다
- 목록 항목
- Outlook에서 작업 창을 엽니 다.
- 버튼 새로운 윈도우가 열립니다
- 의 기호를 히트, 인증 완료에
- 이 창 추가 기능 범위 사무실의 페이지로 리디렉션합니다. 우리의 인증 포털에서
- 사용자 징후를 지적하고, auth 토큰을 사용하여 상위 프레임으로 다시 호출되며 여기에서 추가 처리가 가능합니다.
1 단계부터 5 단계까지 모든 플랫폼에서 정상적으로 작동합니다. 6 단계는 Mac 용 Outlook에서 작업하지 않습니다. 처음에는이 흐름이 기본 js window.open 및 window.postMessage apis를 사용하여 작성되었습니다. 위에서 언급했듯이 이것은 어디에서나 작동했지만 Outlook Mac에서는 API가 윈도우 옵션을 무시하고 열려 있던 브라우저의 새 탭에서 url을 열고 자식 윈도우 참조를 설정하지 않은 것입니다 (window.open의 결과는 null입니다).).
이 작업을 수행하지 못하면 여기에 나와있는 조언에 따라 Office 기능, displayDialogAsync 및 messageParent를 사용합니다. 몇 가지 초기 장애물이 있었지만이 또한 설정되어 Outlook Mac을 저장하는 모든 플랫폼에서 작동했습니다.
Mac 용 Outlook에서 dev 도구 또는 JS 콘솔 지원이 없으므로 여기 Howto: Outlook 2016 for Mac - Debugging/View Console Logs in Outlook Add-in에있는 조언에 따라 Vorlon에서 컨텍스트를 얻으려고 시도하고 수많은 로깅 포인트를 추가하여 일부 컨텍스트를 얻습니다. 불행히도 Vorlon은 클라이언트로 내 방문 페이지를 가져오고 Office 인터페이스를보고 있지만 내 콘솔 출력은 표시되지 않으므로 JS가 전혀 실행되지 않는 것처럼 보입니다.
이 시점에서 나는 다음에 무엇을 시도해야할지 모르겠다. 이 문제가 발생하거나 Mac 클라이언트 용 Outlook 2016에서 작동하는 사람이 있습니까?
명확히 컨텍스트 :
- 모든 인증 페이지는 매니페스트의 응용 프로그램 도메인 섹션에 나열되어 있습니다.
- 처음 버전은 우리의 인증 서비스 (Mac에서는이 기능이 작동하지 않음)를 직접 가리키고 있지만, 현재 버전은 먼저 인증 서비스로 리디렉션되는 범위 내 사전 인증 페이지를 엽니 다.
- 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의 텍스트 속성에 "log"를 입력하십시오. –
죄송합니다. 나는 분명히해야했습니다. 예, 리디렉션이 작동하지만 자바 스크립트 중 아무 것도하지 않는 것 같습니다. 로그 정보가있는 Div에 쓰기를 생각하지 않았습니다. 최소한 그 종류의 컨텍스트를 제공 할 수도 있습니다. 수신 된 메시지는 전혀 트리거되지 않습니다. 링크를 가져 주셔서 감사합니다, 그 사람들은 내가 일찍 시도하고 잘못되었을 수도있는 것을 찾으려고 사용했습니다. 접두사를 사용하여 창을 닫을 때 이벤트 처리기를 설정하려고했지만 _any_ 플랫폼에서 실행되지 않는 것 같습니다. – Ava