【问题标题】:Web app to client interaction?Web 应用程序与客户端交互?
【发布时间】:2011-05-06 18:18:36
【问题描述】:

我正在设计一个 Web 应用程序,其中包含一些需要传输到客户端(非浏览器)应用程序(即 Outlook)的信息。假设客户端应用程序具有某种 API,我需要网络应用程序触发客户端(基于用户单击链接)以获取信息并通过其 API 将其传输到客户端应用程序。

我的第一个想法是编写一个 ActiveX 控件,我可以将安全代码传递给该控件,然后使用该信息通过我创建的 Web 服务与 Web 应用程序对话,然后 ActiveX 控件可以将接口实现到客户端应用程序(即 Outlook)。根据我的阅读,这可以通过 ActiveX 实现。

我的问题是 ActiveX 无法在 Mozilla 浏览器或 Chrome 中运行,这构成了一个真正的问题,因为我需要它是多平台的。我读过关于 NPAPI 的文章,它被认为是等效的本机技术。我还阅读了有关据称支持 ActiveX 的 Firefox 和 Chrome 插件,但它们不是本机的。我需要有原生的开箱即用支持,这样用户就不必做任何特别的事情,只需单击并运行。所以这是我的问题:

1) ActiveX 是 IE 的唯一选择吗?

2) 我是否需要开发 ActiveX 和 NPAPI 来支持所有客户端?

3) 有没有我不知道的更好的方法来做到这一点?我对其他技术持开放态度,因为重点是无缝的用户体验。

感谢您的任何见解!

【问题讨论】:

    标签: architecture activex cross-browser npapi


    【解决方案1】:

    如果我正确理解您的要求,我认为没有什么是无缝的。您需要将某种模块下载到可以访问其本地系统资源的客户端计算机上。任何体面的浏览器都会向用户抛出可怕的警告。

    【讨论】:

    • 谢谢楼主。我同意用户必须下载一个组件(如 ActiveX),我想这是一个必要的邪恶,我只是想保持简单,并且更喜欢使用一种技术,而不是基于浏览器的 2 或 3 种技术。跨度>
    【解决方案2】:

    恐怕您可能的解决方案之一是为您希望此应用使用的每个浏览器开发一个插件,就像谷歌对齿轮所做的那样

    但是您总是可以尝试使用 java 小程序来解决这个问题,但我不知道浏览器安全策略是否允许您与诸如 Outlook 之类的应用程序通信,我相信它会

    干杯

    【讨论】:

    • 会,但会显示一个对话框,要求用户“信任”该控件。对话框并没有特别说明会发生什么,所以有时它会把用户吓得半死:-/
    【解决方案3】:

    根据您要传输的信息类型,您可以让 Outlook 在下载时打开并处理它。例如,Outlook 通常设置为 .ics(Internet 日历)文件的默认应用程序。当我下载 .ics 文件时,Outlook 将启动,并将文件作为日历条目打开。

    因此,一个疯狂的想法是编写一个小应用程序,用户将安装在他们的系统上。该应用程序将注册为您的独特文件类型的默认程序。当您要传输信息时,只需将文件作为附件下载即可。您的程序将被调用来处理它。然后,您的程序可以使用 Outlook API 以任何您需要的方式将数据发送到 Outlook。

    如果交互不适用于单个文件,您仍然可以使用虚拟文件。其目的是启动您的小型客户端程序并为其提供说明。然后,您的程序可以在一侧与您的 Web 服务进行通信,并在另一侧通过 Outlook API 进行通信。您可以在该环境中做任何您喜欢的事情,尤其是如果您还创建了 Outlook 加载项。

    我还没有为几个版本做过 Outlook 编程。使用 Outlook 2007 和 Visual Studio Tools for Office,您可能能够组合其中的一些部分。主要好处是您根本不需要担心浏览器。

    【讨论】:

      【解决方案4】:

      ActiveX 仅适用于 IE,而 NPAPI 适用于 Firebreath、Chrome 等。

      您可以使用 FireBreath 项目,该项目提供了一个相对容易使用的抽象来创建单个插件接口,该接口将用作 ActiveX 控件或 NPAPI 控件。

      项目主页在这里:http://www.firebreath.org

      尽管没有正式发布,但它确实非常接近仅 Windows 的 1.0 版本;听起来这就是你所关心的。

      有关“快速入门”信息,请查看此 wiki 页面:http://www.firebreath.org/display/documentation/Creating+a+New+Plugin+Project - 有一个 python 脚本将生成一个示例项目,您可以使用基本插件在大约 30 分钟内启动并运行。

      另外,请加入邮件列表——我是主要开发人员,我向您保证,如果您在开始使用时遇到问题,我们会及时回答您的问题。 =]

      【讨论】:

        猜你喜欢
        • 2013-05-18
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        • 2021-08-29
        • 2012-02-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多