0

Ich arbeite an einem Office365 Javascript Content Addin für PowerPoint und habe Probleme mit Messaging.Office365 Addins - Wie zwischen addin Windows kommunizieren

Im Gegensatz zu Word oder Excel werden wahrscheinlich mehrere Add-Ins in einem Dokument verwendet. Z.B. Eine auf Folie 3, eine auf Folie 5.

Ich habe 2 Szenarien, die nicht gut funktionieren.

  • Mit dem Office365 webclient (funktioniert in nativ) - wenn etwas im Diashow-Modus geändert wird, wird dies nicht automatisch reflektiert wird, wenn zu dieser Folie in Designer-Modus zurück.
  • Webclient und systemeigen - Wenn sich ein Benutzer auf einer Folie abmeldet, kann ich die Add-Ins auf anderen Folien nicht automatisch abmelden.

Was ich bisher versucht habe:

  • sah durch die Office.js Datei und documentation.

  • Untersucht die underlying tech so erwartet einige Standard-HTML-Techniken zu arbeiten.

  • Erprobt sowohl postMessage und mit einem storage event (die in IE direkt, aber nicht in PowerPoint funktionierte).

Ich könnte einen Herzschlag oder WebSockets impement, würde aber lieber vermeiden Sie den Server unnötig schlagen und und möchte die Dinge so einfach wie möglich halten. Alternativ könnte ich etwas in localstorage stellen und setInterval verwenden, um es zu überprüfen, aber das würde unnötige Hintergrundarbeit hinzufügen und die Anwendung verlangsamen.

Gibt es irgendwelche "guten" Möglichkeiten, die oben genannten Probleme zu lösen, oder ist der setInterval/localstorage-Check die einzige einfache Lösung im Moment?

+0

Ich musste mit der setTimeout/localStorage Option gehen. 'setTimeout' ist in diesem Fall besser als setInterval als setInterval (http://stackoverflow.com/questions/729921/settimeout-or-setinterval). Keine ideale Lösung, aber es funktioniert. Um diese Frage noch nicht zu schließen, wie in einer späteren Version der API, kann ein Ereignis hinzugefügt werden, das dies möglich macht (z. B. in Übereinstimmung mit der Antwort von @Michael Mainer unten). – HockeyJ

Antwort

2

Sie könnten versuchen, die document.settings Eigenschaft anstelle von localStorage zu verwenden. Es gibt ein settingsChanged-Ereignis, das Ihnen dabei helfen kann, das zu tun, wonach Sie suchen. Ich habe es nie zuvor benutzt, also lassen Sie uns wissen, ob es hilft (oder nicht).

Das settingsChanged-Ereignis ist ab diesem Post-Datum nur für Excel verfügbar.

+0

Wird es versuchen. Vielen Dank. – HockeyJ

+0

Keine Freude für jetzt. Die Methode wäre großartig, aber sie wird momentan nur in Excel unterstützt. http://dev.office.com/reference/add-ins/shared/settings.addhandlerasync – HockeyJ

+1

Das ist bedauerlich. Sie können Ihr Szenario über https://officespdev.uservoice.com/ äußern. Fügen Sie an diesem Speicherort eine Anforderung für dieses Feature hinzu. –

0

Trawling durch die Dokumentation, es scheint, dass diese Art von Sache mit refreshAsync erreicht werden kann.

Verwandte Themen