我们有一个内容管理解决方案,我们托管文件。
我们的服务器端充当MS WEBDAV服务器。
我们基于浏览器端的Java脚本的应用程序显示了存储在我们服务器中的文件。
[只要用户在我们的浏览器应用程序中单击文档,我们就会形成ms office URI,并打开本地ms office安装。此后,DAV通信在本地办公室应用程序和我们的服务器端之间发生。
现在,我想在本地办公室应用程序和实际上帮助打开文件的客户端浏览器之间共享一些信息/状态。
是否可以在浏览器端监听Office应用程序生成的某些事件,例如是否保存?
Office在保存时生成事件,但仍保留在Office产品范围内。如何将此事件传播到正在运行的浏览器应用程序?
我可能可以开发一个VSTO插件,捕获事件,将事件包装到消息总线,然后让我的浏览器应用程序侦听该消息总线,但这似乎很复杂。
而且我也没有选择将任何通知从服务器端发送到客户端。
最好的问候,
Saurav
您最好的选择是创建一个与服务器端服务直接对话的VSTO加载项。
您可以选择几种实现方式。我将尝试创建一个WebSocket桥,该桥在VSTO加载项和您的Web应用程序客户端代码之间转发消息。我将从使用websockify之类的内容开始。
或者,您可以创建一个可由双方调用的简单HTTP Web服务,然后定期对JavaScript代码进行轮询以获取更新。
或者您甚至可以混合使用这两个选项,其中VSTO加载项使用标准的HTTP服务调用,而您的javascript使用WebSocket接收来自同一服务的更新。
这项新服务可以轻松地与您的主要Web应用程序并排放置。也许,Web方法可能只是您的Web应用程序的一部分。
非常简单...您只需要弄清楚如何保留对文档的引用,以便双方都可以毫无疑问地引用它。我会考虑使用文件属性或文档元数据属性。