0

Je travaille sur un AddIn Content365 Javascript pour PowerPoint et j'ai des problèmes avec la messagerie. Contrairement à Word ou Excel, il est probable que plusieurs compléments seront utilisés dans un seul document. Par exemple. Un sur la diapositive 3, un sur la diapositive 5.Office365 Addins - Comment communiquer entre addin Windows

J'ai deux scénarios qui ne fonctionnent pas bien.

  • Utilisation du webclient Office365 (fonctionne très bien en natif) - si quelque chose a changé en mode diaporama, cela ne se reflète automatiquement lors du retour à cette diapositive en mode design. WebClient et natif - Si un utilisateur se déconnecte sur une diapositive, les compléments sur les autres diapositives ne se déconnectent pas automatiquement.

Ce que j'ai essayé jusqu'à présent:

  • regardé à travers le fichier Office.js et documentation.

  • Étudié le underlying tech donc attendu quelques techniques html standard pour travailler.

  • Essayé à la fois postMessage et en utilisant un storage event (qui fonctionnait dans IE directement, mais pas dans PowerPoint).

je pourrais impement un battement de coeur ou websockets, mais préféreraient éviter de heurter le serveur inutilement et et souhaitez garder les choses aussi simples que possible. Sinon, je pourrais mettre quelque chose dans localstorage et utiliser setInterval pour le vérifier, mais cela ajouterait du travail en arrière-plan inutile et ralentirait l'application.

Existe-t-il de «bonnes» façons de résoudre les problèmes mentionnés ci-dessus ou est-ce que setInterval/localstorage vérifie la seule solution simple pour le moment?

+0

J'ai dû utiliser l'option setTimeout/localStorage. 'setTimeout' est meilleur que setInterval comme setInterval dans ce cas (http://stackoverflow.com/questions/729921/settimeout-or-setinterval). Pas une solution idéale, mais cela fonctionne. Je ne vais pas encore fermer cette question, comme dans une version ultérieure de l'API, un événement peut être ajouté qui rend cela possible (par exemple, en ligne avec la réponse @michael mainers ci-dessous). – HockeyJ

Répondre

2

Vous pouvez essayer d'utiliser la propriété document.settings au lieu de localStorage. Il y a un événement settingsChanged qui pourrait vous aider à faire ce que vous cherchez. Je ne l'ai jamais utilisé auparavant, alors laissez-nous savoir si cela aide (ou pas).

L'événement settingsChanged n'est disponible pour Excel qu'à partir de cette date de publication.

+0

Va essayer. Merci. – HockeyJ

+0

Pas de joie pour le moment. La méthode serait géniale, mais elle est uniquement supportée dans Excel pour le moment. http://dev.office.com/reference/add-ins/shared/settings.addhandlerasync – HockeyJ

+1

C'est malheureux. Vous pouvez exprimer votre scénario via https://officespdev.uservoice.com/. Ajoutez une demande pour cette fonctionnalité à cet emplacement. –

0

Trawling à travers la documentation, il semble que ce genre de chose peut être atteint en utilisant refreshAsync.