使用Google Chrome扩展程序访问本地文件

The*_*Rat 18 google-chrome google-chrome-extension

我之前曾问过类似的问题

与网站的现金抽屉沟通

然而问题非常模糊,我现在知道我需要的是使用扩展名.

这个问题与以下类似,但不完全是我需要的信息.

Chrome扩展程序和本地存储

通过Google Chrome扩展程序访问本地文件?

列出具有chrome扩展名的本地目录

我真正需要做的是从我的网站上运行用户计算机上的bat文件.该站点的用户将是公司的员工,他们将使用的计算机将由我们提供,因此我可以对机器进行任何必要的更改,以便在运送给用户之前使用.

我了解您可以在计算机上创建一个允许chrome访问的本地文件夹,从而保持安全性.我已经搜索了如何做到这一点,但似乎无法确定我需要搜索的内容,尤其是我需要帮助的地方.

http://developer.chrome.com/apps/fileSystem

我还没有建立扩展,但我愿意接受挑战,所以我不需要这方面的帮助.下面的两个指南似乎不仅仅是充足的.

http://lifehacker.com/5857721/how-to-build-a-chrome-extension

http://css-tricks.com/colorpeek-part-2-building-first-chrome-extension/

这是我目前所在的地方.

{
  "name": "Open Till",
  "version":"1",
  "manifest_version": 2,
  "description": "Allow POS Users to Open their Till",
  "browser_action": {
    "default_icon": "icon.jpg"
  }
}
Run Code Online (Sandbox Code Playgroud)

我接下来需要实现的是创建一个命令来调用扩展,然后扩展导航到chrome可以访问的本地文件夹,然后执行批处理文件.

我意识到我可以通过使用npapi插件来解决对chrome文件夹的需求

https://developer.chrome.com/extensions/npapi

然而,这显然是一个潜在的雷区,所以我不想这样做.

如果有人能指出我如何创建文件夹和访问文件的正确方向,这将是非常感谢.

Alo*_*kin 15

您需要编写一个Chrome扩展程序,向您的网站公开API.这是简单的部分.您内容脚本注入您的网站,然后用于 chrome.extension.sendMessage与您的扩展程序进行通信.

困难的部分是bat从您的扩展程序中实际打开文件.使用NPAPI,这本来很容易,因为您可以编写一个C++插件来调用CreateProcess或者其他东西.与你所说的相反,这是一个非常好的解决方案.但不幸的是,NPAPI不​​是一种选择,因为它已被弃用.

所以你应该做的是使用Native Messaging.基本上,它是一个Chrome API,允许扩展使用标准输入和输出流与本机应用程序交换消息.

在这里阅读更多相关信息:https: //developer.chrome.com/extensions/messaging#native-messaging-host