ClickOnce:如何从Web自动启动安装/启动

时间:2013-04-30 15:01:26

标签: javascript clickonce autostart

我为.NET 2.0开发了一个ClickOnce应用程序,它运行得很好。如果我点击生成的publish.html页面上的安装按钮或直接在IE中访问应用程序URL https://<host>:<port>/<path>/<app>.application,它将按预期安装/启动并运行。

为了让用户更好地开始体验,我现在希望立即开始安装/启动应用程序,而无需用户点击其他按钮或链接。因此,我添加了以下JavaScript代码:

setTimeout(function() {
  var iframe = $("<iframe/>")
      .attr("id", "autoDownloadFrame")
      .attr("src", "https://<host>:<port>/<path>/<app>.application")
      .hide();
  iframe.appendTo($('body'));
}, 1500);

此代码可以正常启动,例如,自动下载安装程序。它也可以为我的ClickOnce应用程序下载.application文件。但不幸的是,ClickOnce安装/启动并没有启动我的应用程序。

我认为这可能与Web服务器设置的Content-Type有关(在这里使用Tomcat 7和Spring 3.2)。但即使在确认(并验证)内容类型设置为application/x-ms-application之后,自动启动也不会发生。

有关为何会出现这种情况的任何提示?

操作系统:Win7 Enterprise 64位,EN 浏览器:MSIE 9.0,.NET 2.0至3.5可用(当然,自点击开始工作) 协议:使用自定义端口(8080和8443)

测试HTTP和HTTPS

提前感谢任何提示! 干杯,比约恩

2 个答案:

答案 0 :(得分:0)

我目前的研究和同事的反馈表明,此行为是由Microsoft实施的,目的是阻止用户未明确“请求”的自动应用程序启动(通过显式单击链接或按钮)。所以我认为这不可行,继续“点击此按钮开始”解决方案。

如果我错了,请随时纠正我,在这种情况下我想错了:)

干杯,比约恩

答案 1 :(得分:0)

您可以使用microsoft-edge:http://url/abc.applicaiton网址通过javascript自动下载。 这将在Microsoft Edge中打开clickOnce应用程序,然后依次下载并安装该应用程序。