如何在 lync cwe 托管的 xbap 中获取当前对话?
Posted
技术标签:
【中文标题】如何在 lync cwe 托管的 xbap 中获取当前对话?【英文标题】:How to get current conversation in xbap hosted by lync cwe? 【发布时间】:2013-12-30 05:46:32 【问题描述】:我正在实施 Lync 对话窗口的扩展 (Lync cwe)。 Lync 有一个嵌入式浏览器,因此我使用 xbap(WPF 浏览器应用程序)来显示此对话的一些信息。但我无法在 xbap 代码中获取当前对话对象。 Lync CWE 相关信息:http://msdn.microsoft.com/en-us/library/office/hh378589(v=office.14).aspx
我知道通过调用 LyncClient.GetHostingConversation() 在 silverlight 应用程序中很容易实现这一点。但是由于某些原因,我不能选择silverlight。
我发现 Lync 会为浏览器中的每个对话编写一个密钥。我们可以使用 javascript 代码来访问属性:“external.Parameters”。我还观察了 GetHostingConversation() 方法,它使用 htmlPage.Window.Eval("external.Parameters") 来获取用于获取当前对话的密钥。但是不知道能不能利用这个特性在xbap中得到我想要的东西。
我还尝试在 xbap 中托管一个 silverlight 应用程序。我希望如果我将正确的信息写入 xbap 的 Web 浏览器控件,那么托管在 xbap 中的 silverlight 应用程序也可以为我获取当前的会话对象。但我未能添加 external.Parameters。关于在 xbap 中托管 silverlight 的信息:http://msdn.microsoft.com/en-us/library/cc656722.aspx
这是我所做的步骤:
-
创建 WPF 浏览器应用程序
添加 Microsoft.Lync.Model 和 Microsoft.Lync.Utilities 的引用
使用以下代码获取当前对话对象:
Conversation currentConversation = (Conversation)LyncClient.GetHostingConversation();
但 Visual Studio 告诉我 LyncClient 没有 GetHostingConversation 的定义。
那么是否可以在 xbap 中获取当前的对话对象?怎么做?
谢谢。
【问题讨论】:
发布文档链接不会有太大帮助。能够回答您的问题的人很可能已经熟悉它。你有没有按照教程?请发布您为实现目标而采取的确切步骤以及您在此过程中遇到的任何错误消息。 【参考方案1】:GetHostingConversation 方法仅在 Lync Silverlight 应用程序中可用。看起来您正在使用 WPF。如果需要 WPF,您需要了解如何在 Lync WPF 应用程序中获取对话对象。我的记忆是它比在 Silverlight 应用程序中多一点工作。您可以考虑在此处的 Lync SDK 论坛上发布问题:
http://social.msdn.microsoft.com/Forums/lync/en-US/home?forum=communicatorsdk
【讨论】:
以上是关于如何在 lync cwe 托管的 xbap 中获取当前对话?的主要内容,如果未能解决你的问题,请参考以下文章
从 MainPage 在托管页面上调用 javascript
Lync SDK - 为 Lync 制作插件 - 对话窗口扩展
如何从嵌入在 Lync 中的 Silverlight 读取文件?