0

PowerPoint 용 Office365 Javascript Content Addin에서 작업 중이며 메시징에 문제가 있습니다.Office365 Addins - 추가 기능 사이의 통신 방법

Word 또는 Excel과 달리 한 문서에서 여러 개의 추가 기능이 사용됩니다. 예 : 슬라이드 3에 하나, 슬라이드 5에 하나.

나는 2 개의 시나리오가 잘 작동하지 않습니다. 마이크로 소프트 오피스 365의 웹 클라이언트 (네이티브에서 잘 작동)를 사용하여

  • - 디자이너 모드에서 그 슬라이드에 반환 할 때 뭔가 슬라이드 쇼 모드에서 을 변경하면,이 자동으로 반영되지 않습니다.
  • 웹 클라이언트 및 기본 - 사용자가 한 슬라이드에서 로그 아웃하는 경우 다른 슬라이드의 추가 기능을 자동으로 로그 아웃 할 수 없습니다. 내가 지금까지 시도했습니다 무엇

는 :

  • Office.js 파일 documentation을 보였다.

  • underlying tech을 조사 했으므로 표준 HTML 기술이 작동 할 것으로 예상됩니다.

  • postMessage와 storage event (Internet Explorer에서 직접 작동했지만 PowerPoint에서는 작동하지 않음)을 모두 시도했습니다.

나는 하트 비트 또는 WebSocket을을 impement 수 있지만, 오히려 불필요하게 서버를 타격하지 않도록 것이며, 가능한 한 간단하게 유지하고 싶습니다. 또는, localstorage에 뭔가를 넣고 그것을 확인하기 위해 setInterval을 사용할 수 있습니다.하지만 불필요한 백그라운드 작업이 추가되고 응용 프로그램이 느려질 수 있습니다.

위에서 언급 한 문제를 해결하기위한 '좋은'방법이 있습니까? 아니면 setInterval/localstorage가 현재 유일한 해결책을 확인하고 있습니까?

+0

나는 setTimeout/localStorage 옵션을 사용해야했다. 이 경우에는 setInterval보다 'setTimeout'이 더 좋습니다 (http://stackoverflow.com/questions/729921/settimeout-or-setinterval). 이상적인 솔루션은 아니지만 작동합니다. 아직이 질문을 닫지 않으려 고합니다. API의 최신 버전에서와 같이 이벤트를 추가하면 가능합니다 (예 : @michael 메인 응답과 함께). – HockeyJ

답변

2

localstorage 대신 document.settings 속성을 사용해 볼 수 있습니다. 찾고있는 것을 수행하는 데 도움이되는 settingsChanged 이벤트가 있습니다. 나는 전에 그것을 사용한 적이 없기 때문에 도움이되는지 아닌지 알려주십시오.

settingsChanged 이벤트는이 게시일 현재 Excel에서만 사용할 수 있습니다.

+0

한번 해봐. 감사. – HockeyJ

+0

지금은 기쁨이 없습니다. 이 방법은 훌륭 하겠지만 현재 Excel에서만 지원됩니다. http://dev.office.com/reference/add-ins/shared/settings.addhandlerasync – HockeyJ

+1

불행합니다. https://officespdev.uservoice.com/을 통해 시나리오를 음성으로들을 수 있습니다. 이 위치에이 기능에 대한 요청을 추가하십시오. –

0

설명서를 통해 트롤링하면 이런 종류의 일은 refreshAsync을 사용하여 달성 할 수 있습니다.