【问题标题】:C# plugin for Google Chrome谷歌浏览器的 C# 插件
【发布时间】:2010-12-25 06:51:24
【问题描述】:

我可以用 C# 与 Google Chrome 通信吗?

例如用于编写 chrome 插件。

【问题讨论】:

    标签: c# google-chrome


    【解决方案1】:
    <Spoilers>
    

    简短的回答:不,因为扩展需要 JSON、JavaScript 和 HTML。

    </Spoilers>
    

    你好托尼,
    Internet 上有多个模板,您可以下载这些模板以使用 Visual Studio 构建 chrome 扩展项目。

    下载其中一个模板只会为您提供所需的文件和文件夹,我称之为“设置”。

    这不会让您使用 C# 构建 Google 扩展。

    Andrey 提到有像 Bridge.NET 这样的库可以将您的代码编译成 HTML/JavaScript。这将帮助您使用 C# 编写 HTML 和 JavaScript。您仍然需要 manifest.json 文件。

    我不建议这样做。该库不是为 Chrome 扩展程序设计的。此外,您必须将代码编译为 JavaScript 并将该 JavaScript 代码存储在 JavaScript 文件中。我建议在构建 Chrome 扩展程序时使用没有编译器的 HTML/JavaScript。

    您需要记住,chrome 扩展中有 3 个主要部分。它们是:
    manifest.json
    JavaScript 文件
    HTML 文件

    有多个步骤,构建谷歌浏览器扩展并不难。 This link will give you the complete tutorial on developing a chrome extension with detailed explanation.本教程安装了一个模板,以便您可以像我之前提到的那样在Visual Studio中开发它。

    【讨论】:

    • 这与您的回答和问题无关,只是想问一下本文中描述的这个chrome模板仅适用于VS2013/15。我尝试在具有 only Visual Studio 2017 的机器上安装此模板,但它失败了?此扩展是否仅适用于 Visual Studio 2015?
    • 我在 VS2017 上安装 chrome 扩展模板时遇到了类似的错误。所以根据我的观点,这个扩展只支持版本 VS15 , 13 等等stackoverflow.com/questions/41215916/…
    • 您是否不小心在问题中添加了赏金?
    【解决方案2】:

    我要解决的问题是使用Simple Message Host,它将触发您在c#中编写的本地计算机上的可执行文件,发送stdin消息并收听stdout消息,以便您可以构建此主机以使用作为桥梁,但就像我说的,它至少需要在您的local network 上,并且您必须在windows registry 中进行一些编辑,因此它有其局限性。

    但是对于我正在使用的系统,这个解决方案非常有效,因为我有一个可以设置所有这些先决条件的受控环境。

    所以,澄清一下,我在这里所做的是:

    1. 使用 background.js 创建一个 chrome 扩展程序,打开网站 javascript 的侦听器。

    2. windows registry中添加一个注册表,指向可执行文件的路径。

    3. 在 C# 中创建可执行文件,执行所有逻辑。

    4. 将响应从可执行文件发送到扩展程序,然后返回到网站。

    有几个关于如何做到这一点的指南,所以我不会在这里详细说明这些步骤,所以我不会复制它。

    但就目前而言,如果您可以控制自己的环境,那么这是做您想做的事的最佳方式。

    所以,如果您的插件(扩展程序或 chrome 应用程序)可以在受控环境中运行,这是可行的方法,否则,我会考虑与 ClickOnceWebAssembly 相关的内容,但尚未完全发布.

    【讨论】:

      【解决方案3】:

      Chrome自带的扩展管理器支持jshtml编写的扩展。

      也就是说,要在扩展程序中执行 c# 代码,您有两个选择:

      1. c# 代码编译为javascript 代码,然后可以将其作为普通javascript 扩展添加到chrome(查看scriptsharp
      2. 使用 c# 作为后端系统。就像大多数download managers

      对于案例 2,您需要在客户端设备(或云端)中安装一个 c# 应用程序,列出特定端口(使用 httplistenerself hosted webapi (you can use netcore) 执行这些步骤

      1. 列出传入请求
      2. 解析请求数据,例如。 json 并用它做点什么
      3. 将结果返回给javascript 扩展,它可以将其显示给用户或用它做其他事情。

      【讨论】:

        【解决方案4】:

        这个话题已经很老了,但我想分享一下这个例子: https://github.com/Retyped/Demos/tree/master/ChromeDemo

        简而言之,该示例是用 C# 实现的。 Retyped.chrome NuGet 包为Bridge.NET projects 提供绑定(Chrome API)。所以是的,现在你可以在 C# 中实现你的逻辑,然后 C# 代码将被 Bridge.NET 编译器透明地编译成 JavaScript。

        通过这种方法,您可以在 .NET Framework 之上构建您的 Chrome 扩展程序并利用 thousands of JavaScript libraries

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-21
          相关资源
          最近更新 更多