通过自己的应用实现开放自己的链接

时间:2010-03-26 10:23:06

标签: html installation activex hyperlink

我想实现以下行为:

我有一个特殊的媒体播放器,即能够播放互联网流(类型的流并不重要,我们可以认为这些只是媒体文件)。一个人X有许多链接到这些流,并且该人将根据我的规则准备带有链接的HTML页面。

目标是:如果用户在浏览器中单击此类链接,则会检查是否存在已安装的应用程序。

  • 如果未安装应用程序,则会提示用户安装我的应用程序。用户同意安装后,将安装该应用程序(通过远程msi),并使用字符串作为命令行参数启动。

  • 如果安装了应用程序,则会使用字符串作为命令行参数启动它。

我想,实现这一点的方法之一是编写ActiveX控件(实际上不是控件,因为ActiveX不包含除了一些消息框之外的UI元素)。 ActiveX将检查我的应用程序是否已安装,如有必要,提示安装应用程序;启动安装程序启动已安装的应用问题是:

  • 可以采用哪种方法(除了AciveX)?
  • 我没有写AciveX控件。你可以推荐哪些起点(有用的链接)来编写这样的ActiveX(考虑到它将用MSVC ++编码)?
  • 其他一些评论或建议?

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用ActiveX不会跨浏览器兼容,尽管您可以为每个主要浏览器开发插件,这仍然需要用户安装或授权。我担心你会发现这很困难,除非你乐意削减你的一个要求(例如第一个)。

要满足第二个要求,您应该查看registering a custom URL protocol handler。然后,您可以通过一个简单的链接启动已安装的应用程序:

<a href="myapp://someCommand/>Click to open with my app!</a> 

但是,对于未安装应用程序的用户,URL不起作用。 IE的一种解决方法(因为您提到了ActiveX)将您的应用程序附加到the user agent string,然后使用服务器端或客户端代码检查此字符串是否存在。如果不存在,那么您就知道您的应用程序已安装。