【问题标题】:Office365 Addins - How to communicate between addin WindowsOffice 365 插件 - 如何在插件 Windows 之间进行通信
【发布时间】:2016-06-09 14:15:23
【问题描述】:

我正在为 PowerPoint 开发 Office365 Javascript 内容插件,但在消息传递方面遇到了问题。

与 Word 或 Excel 不同,可能会在一个文档中使用多个加载项。例如。一张在幻灯片 3 上,一张在幻灯片 5 上。

我有 2 个场景运行不佳。

  • 使用 Office365 网络客户端(在本机中可以正常工作)- 如果有更改 在幻灯片模式下,返回时不会自动反映 以设计器模式滑动。
  • Webclient 和本机 - 如果用户在一张幻灯片上注销,我无法让其他幻灯片上的加载项也自动注销。

到目前为止我所尝试的:

我可以实现心跳或 websockets,但宁愿避免不必要地访问服务器,并希望使事情尽可能简单。或者,我可以在 localstorage 中放一些东西并使用 setInterval 来检查它,但这会增加不必要的后台工作并减慢应用程序的速度。

是否有解决上述问题的“好”方法,或者 setInterval/localstorage 检查是目前唯一简单的解决方案?

【问题讨论】:

  • 我不得不使用 setTimeout/localStorage 选项。在这种情况下,'setTimeout' 优于 setInterval 作为 setInterval (stackoverflow.com/questions/729921/settimeout-or-setinterval)。不是一个理想的解决方案,但它有效。暂时不打算结束这个问题,因为在更高版本的 api 中,可能会添加一个事件来实现这一点(例如,与下面的@michael mainers 响应一致)。

标签: javascript ms-office powerpoint office365 apps-for-office


【解决方案1】:

您可以尝试使用document.settings 属性而不是localStorage。有一个 settingsChanged 事件可以帮助你做你正在寻找的事情。我以前从未使用过它,所以让我们知道它是否有帮助(或没有)。

截至本发布日期,settingsChanged 事件仅适用于 Excel。

【讨论】:

【解决方案2】:

翻阅文档,似乎这种事情可以使用refreshAsync来实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多