如何让WebKit或IE从浏览器中打开的HTML页面调用您的应用程序(.NET)?

时间:2010-03-12 00:48:20

标签: .net internet-explorer webkit

我在Windows上运行.NET应用程序。我想点击一些页面元素(按钮链接flash应用程序等)来启动我的应用程序与一些特殊参数。 (它不仅应该在IE中运行,而且应该在基于WebKit的Windows浏览器上运行)在App安装期间,我们假设用户是Admin并且正在运行Vista或Windows 7或更高版本。

所以我的问题是 - 在哪里可以获得这种互动的例子(当然是来源)?

那么如何让基于WebKit的浏览器或IE调用您的.Net应用程序?

5 个答案:

答案 0 :(得分:11)

Register a custom URL Protocol Handler。然后,您可以使用链接等指定网址:

<a href="myapp://doSomething/>Click to run my app!</a>

<小时/> 我可以确认这适用于所有版本的Internet Explorer。我还在最新版本的Firefox(3.6)和Chrome(其版本逃脱了我)中进行了测试。 Chrome不允许您在地址栏中输入自定义协议,但它会使用自定义协议从链接启动应用程序。

如果安装了Adobe Reader,则会注册acrobat://协议。不幸的是,SO不允许使用自定义协议的链接,所以我不敢在这里添加一个例子。

答案 1 :(得分:3)

您无法使用基于Webkit的浏览器直接打开应用程序。您最好的希望(以及Apple打开iTunes Store所做的工作)是让您的.NET应用程序注册以打开某些类型的URL,使用指向此类型URL的链接。

例如,如果您的应用程序可以打开myapp://个网址,则可以使用以下HTTP标头:

Location: myapp://mysettings

或更传统的链接:

<a href="myapp://mysettings">Foo</a>

然后浏览器会小心打开一个可以处理myapp:// URL方案的应用程序(在本例中是您的应用程序)。

答案 2 :(得分:0)

鉴于要运行的应用程序和浏览器都在Windows上运行,registered protocol handler是最好的方法,假设所有有趣的浏览器都支持它。考虑到上面的链接来自Internet Explorer Development上的MSDN文档,我可以想象某些浏览器可能不想支持这种机制。

答案 3 :(得分:0)

我建议这样做的唯一方法是通过往返服务器。网页触发服务器上的内容。该应用程序也连接到服务器。我认为以任何其他方式做到这一点可能是不合理的。如果你想变得非常脏,可以使用Flash的LocalConnection(它使用内存映射文件进行通信)与.net应用程序聊天。 Darron Schall管理了它(但没有共享)。

如果它需要应用程序,为什么还要打扰网页?

答案 4 :(得分:0)

您可以注册指向您的应用程序的协议处理程序,然后使用指向具有该协议的URL的链接以及您需要的任何参数。