适用于Google Chrome的C#插件

我可以用C#与谷歌浏览器沟通吗?

例如,用于编写chrome插件。

 

快速简答:不,因为扩展需要JSON,JavaScript和HTML。

  

嗨托尼,
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文件

有多个步骤,构建谷歌浏览器扩展程序并不难。 此链接将为您提供有关开发chrome扩展的完整教程,并提供详细说明。 本教程安装了一个模板,以便您可以像我之前提到的那样在Visual Studio中开发它。

我要做的就是使用Simple Message Host ,它将触发你在c#中编码的本地机器上的可执行文件,发送stdin消息并监听stdout消息,这样你就可以构建这个主机用作桥接器,但是就像我一样说,它至少需要在你的local network上,你必须在windows registry做一些编辑,所以它有其局限性。

但对于我正在使用的系统,这个解决方案工作得很好,因为我有一个受控制的环境,我可以设置所有这些先决条件。

所以,为了澄清,我在这里做的是:

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

  2. windows registry添加一个指向可执行文件路径的windows registry

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

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

关于如何执行此操作有几个指南,因此我不会在此详细介绍这些步骤,因此我不会复制它。

但目前,如果您掌控自己的环境,这是做您想做的事情的最佳方式。

因此,如果您的插件(扩展程序或Chrome应用程序)将在受控环境中工作,那么这是可行的方法,否则,我会考虑与ClickOnceWebAssembly但尚未完全发布的内容。

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

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

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

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

  1. 列出传入的请求
  2. 解析请求数据,例如。 json并用它做点什么
  3. 将结果返回到javascript扩展名,该扩展名可以将其显示给用户或使用它执行其他操作。

这个主题很老了,但我想分享一下这个样本: https : //github.com/Retyped/Demos/tree/master/ChromeDemo

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

通过这种方法,您可以在.NET Framework上构建Chrome扩展,并使用数千个JavaScript库 。