【问题标题】:Access Local Files using a Google Chrome Extension使用 Google Chrome 扩展程序访问本地文件
【发布时间】:2014-03-21 15:31:33
【问题描述】:

我之前也问过类似的问题

Communicate with Cash Drawer from Website

但是这个问题非常模糊,我现在知道我需要什么可以使用扩展。

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

Chrome extension and local storage

Access local files through Google chrome extension?

List a local directory with chrome extension

我实际上需要做的是从我的网站在用户计算机上运行一个 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"
  }
}

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

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

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

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

如果有人能指出如何创建文件夹和访问文件的正确方向,将不胜感激。

【问题讨论】:

    标签: google-chrome google-chrome-extension


    【解决方案1】:

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

    困难的部分是从您的扩展程序中实际打开bat 文件。使用 NPAPI,这很容易,因为您可以编写一个调用 CreateProcess 或其他东西的 C++ 插件。与您所说的相反,这是一个很好的解决方案。但不幸的是,NPAPI 不是一个选项,因为它是 deprecated

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

    在此处了解更多信息: https://developer.chrome.com/extensions/messaging#native-messaging-host

    【讨论】:

    • 几天前我设法弄清楚了这一点,我不得不阅读该页面大约 100 次,然后一分钱才落到我头上。目前,我正在为我的特定问题(问题中的链接)研究另一种解决方案,但为了我自己的利益,我将很快重新审视这个问题。非常感谢您的回答和时间,但我担心赏金不会授予任何人并消失在以太中。
    • 原生消息已被弃用(Chome 应用程序的一部分)。 connectNative 方法在 chrome.runtime 上不再可用。见developer.chrome.com/docs/apps/nativeMessaging
    【解决方案2】:
    • 如果您可以访问部署产品的机器,则可以使用 NaCL 并使用 --no-sandbox 命令行标志启动 chrome,并使用以下环境变量:

      set NACL_DANGEROUS_ENABLE_FILE_ACCESS=1

      更多信息blog

    • 另一个选项是 NPAPI。

    【讨论】:

      【解决方案3】:

      出于安全原因,不允许这样做。 如果允许运行 .bat 文件,它将允许在计算机上运行恶意命令。

      【讨论】:

      • 文档中的 npapi 插件是一把大锤子,绝对可以做必要的事情,尽管打开了许多门。我正在寻找更安全的解决方案。
      猜你喜欢
      • 2013-11-20
      • 2010-11-29
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 2011-01-10
      相关资源
      最近更新 更多