【问题标题】:Interact with local methods from a Chrome Extension与 Chrome 扩展程序中的本地方法交互
【发布时间】:2012-07-27 13:39:52
【问题描述】:

我不确定我应该使用哪种技术,甚至不知道我到底想要做什么,所以我希望就这个问题得到一些指导。

我们有一个客户端/服务器架构,从客户端您应该能够通过浏览器 -> 客户端 -> 服务器或直接从浏览器 -> 服务器向服务器端发送命令

我的问题是,我应该寻找什么来帮助我完成这项任务?我相信如果我要使用 Chrome 扩展程序,它必须使用 NPAPI 与我的 PC 进行本地交互,这不是推荐的 ;)

该解决方案只需要在 Windows 上运行,并且不会访问任何本地用户文件。

感谢您的帮助!

【问题讨论】:

  • 你能举一个应用流程的例子吗?我没看到你在找什么。
  • 浏览器扩展 -> 浏览器扩展上的按钮 -> 以某种方式与本地/远程机器方法交互 -> ??? - > 利润!我希望这让它更清楚一点。基本上,如果我在我的客户端/服务器中提供一个 API(与哪一个无关),我如何从浏览器与它进行交互?
  • 最简单的方法是用你喜欢的语言创建一个本地服务器,它在验证后调用预定义的系统方法。 (您应该永远在没有基于白名单的验证方法的情况下执行用户输入)。

标签: firefox google-chrome networking google-chrome-extension


【解决方案1】:

在 Chrome 扩展程序中,当且仅当您在 manifest 文件中明确定义权限(url 模式)时,您才被允许访问外部资源。

根据您的应用程序的需要,您可以使用 RESTful 服务器方法或 WebSockets 服务器方法。完成服务器的开发后,您的扩展程序可以使用现有的 Web 技术(XmlHTTPRequest、WebSocket)通过它进行通信。

假设您将使用 RESTful,我要做的是创建一个 JavaScript 服务类/库,它使用 XHR 与您的后端(服务器)通信,并将其包含在您的 background page 扩展中。然后您可以使用扩展消息传递与您的服务类进行通信。

可以这样想,在扩展程序的后台上下文中定义的脚本位于扩展程序和服务器之间,就像一个门面。如果您需要有关如何使用的问题,请在 GitHub/StackOverflow 上搜索,这里有许多有用的帖子/项目。

【讨论】:

  • 非常感谢您提供这个有用的答案。绝对给了我一个很好的起点。 :) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 2013-05-18
  • 2015-12-11
  • 2015-09-19
  • 2013-03-25
  • 1970-01-01
相关资源
最近更新 更多