You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何无需Chrome扩展直接启动外部应用程序(exe)?

关于Chrome不借助扩展启动外部EXE的可行性解答

首先直接给你结论:不借助任何Chrome扩展的话,直接从Chrome浏览器里启动外部EXE程序是完全不可行的。这是Chrome安全模型的核心限制之一——浏览器原生的网页环境被严格沙箱隔离,不允许直接访问本地系统资源,目的就是防止恶意网页随意调用本地程序,造成安全风险。

你提到的Native Messaging确实是Chrome提供的用于和本地程序交互的官方方案,但它必须依赖Chrome扩展作为中间桥梁,没办法绕过扩展直接使用。具体来说,Native Messaging的工作逻辑是这样的:

  • 你需要先开发一个简单的Chrome扩展,在扩展的manifest.json里声明nativeMessaging权限,同时指定允许通信的本地程序标识。
  • 接着在本地系统注册Native Messaging主机:创建一个JSON配置文件,里面包含你的EXE程序路径、允许与之通信的扩展ID等信息,然后把这个配置文件放到Chrome指定的系统位置(Windows是通过注册表注册,macOS和Linux是放到特定的系统文件夹中)。
  • 之后,扩展就能通过chrome.runtime.connectNative()chrome.runtime.sendNativeMessage()API调用你的本地EXE;如果要从网页触发这个操作,还需要网页和扩展之间建立消息通道(比如用chrome.runtime.sendMessage),由扩展作为中转来调用本地程序。

简单来说,Native Messaging的权限是赋予扩展的,而不是直接赋予网页的。没有扩展作为中间层,网页根本没有权限触发Native Messaging相关的操作——这也是Chrome安全策略的一部分,确保本地程序的调用是在用户主动安装并信任的扩展管控下进行的。

内容的提问来源于stack exchange,提问作者Sumesh Kuttan

火山引擎 最新活动