如何在客户端启动桌面应用程序

IT技术 javascript
2021-03-06 09:52:13

在我的网页中,如果安装了客户端计算机,我必须在客户端计算机上启动桌面应用程序。知道我该怎么做吗?

如果应用程序是 MS Office 或 Adob​​e Reader,我知道如何启动它们,但我要启动的应用程序是自定义应用程序。你无法在互联网上找到它。

如何打开应用程序?

6个回答

除非应用程序注册将触发它的协议,否则基本上不可能实现。如果这样做,您需要做的就是使用此协议提供链接

yourcustomapp://some.parameters

3rd 方应用程序与浏览器集成的另一种方式是将其作为插件挂钩。这就是 Flash 应用程序的工作方式等。

如果您尝试启动的应用程序不支持类似的功能,则几乎不可能实现您想要的功能。

要注册这样的协议,您可以查看此答案我在 Chrome 版本 58.0.3029.81 中对此进行了测试。唯一不能在 chrome 中工作的是在地址栏中输入协议,这似乎在其他浏览器中有效。
2021-04-17 09:52:13
这是我现在确定的方法,但我遗漏了一点:如何触发应用程序在页面加载时“仅运行”?它看起来好像协议处理程序被 API 限制为需要用户交互(用户的实际点击),但我想要的只是让应用程序在页面加载时启动。我不介意是否有安全警告等(正如任何协议处理程序链接所预期的那样)......我只是想让它启动。有任何想法吗?
2021-04-26 09:52:13
你能提供一个解释如何定义和注册这样一个协议的链接吗?
2021-04-28 09:52:13
这是史诗!!创建一个侦听端口的小型服务器,并使用 get 请求远程触发它,并让该服务的应用程序执行操作。我怎么没想到这个!
2021-05-02 09:52:13
应用程序必须已经在客户端计算机上运行,​​或者至少必须运行某些代理。它必须监听某个端口。
2021-05-07 09:52:13

浏览器沙箱禁止您执行本地资源,这是有充分理由的 - 以阻止网站使用恶意代码破坏您的盒子。我一直在研究相同的功能。

我找到的唯一解决方案是在 Mozilla Firefox 中构建一个可以启动您的应用程序的扩展程序。扩展存在于沙箱之外,因此它们可以执行本地资源。请参阅此页面了解如何执行此操作。您可以使用crossrider跨浏览器完成此操作,但我还没有成功。

您也可以构建一个从 Web 服务填充的胖客户端,并通过上述扩展从浏览器启动。这就是我为绕过沙箱所做的工作。为此,我正在使用本地 XUL

有关其他讨论,请参阅我的问题

首先 - 你不能在任何类型的便携式机制中使用 javascript 来做到这一点。

如果应用程序是 ms office 或 adobe reader,我知道如何启动它们

不,您不知道 - 您知道如何发送文档,浏览器将其与这些应用程序关联并调用它们并提供响应的本地副本的名称。你不能只是启动程序。

你只需要对你的应用程序做同样的事情——发明一个新的 mime 类型(主要类型是“应用程序”,按照惯例,非标准次要类型以“x-”为前缀,所以你可以使用 application/x- hguser) 然后将该 mimetype 与相关的程序浏览器端相关联。

即:您需要明确配置每个浏览器

你能提供一个链接,其中包含有关关联自定义 mime 类型的详细信息吗?这对于我试图在封闭环境中解决的问题可能非常有用。
2021-04-25 09:52:13

我已经在一些复杂的生产环境中遇到了这个问题。

我使用以下代码来解决这个问题:

function launch(p_app_path)
{
   var oShell = new ActiveXObject("WScript.Shell");
   oShell.Run('"' + p_app_path + '"', 1);
}

在 IE选项 > 安全 > 自定义级别 > ActiveX 控件和插件 > 初始化和脚本 ActiveX 控件没有标记为安全的脚本,将值设置为询问活动

当您的网站包含在特定的安全上下文中时,这不是安全问题。正如他们所说,建造天然气厂是不值得的。

这是否仅适用于 IE 或其他浏览器?
2021-04-24 09:52:13

单靠 JavaScript 无法做到这一点。(不,即使使用 MS Office 或 Adob​​e Reader 也不行。)谢天谢地。

有许多旧方法,包括使用 ActiveX,它们可能适合您的需要。正如其他人在输入时指出的那样,您可以根据 mime 类型或协议等自定义响应。

无论您怎么看,您都需要控制最终用户的浏览器。如果您处于可以指定策略的封闭环境中(用户必须使用具有特定配置的特定浏览器),那么您将需要这样做。对于无法控制最终用户的开放环境,您很不走运。