适用于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
做一些编辑,所以它有其局限性。
但对于我正在使用的系统,这个解决方案工作得很好,因为我有一个受控制的环境,我可以设置所有这些先决条件。
所以,为了澄清,我在这里做的是:
-
使用
background.js
创建一个chrome扩展,打开网站javascript的监听器。 -
在
windows registry
添加一个指向可执行文件路径的windows registry
。 -
在C#中创建可执行文件,执行所有逻辑。
-
将可执行文件的响应发送到扩展,然后返回到网站。
关于如何执行此操作有几个指南,因此我不会在此详细介绍这些步骤,因此我不会复制它。
但目前,如果您掌控自己的环境,这是做您想做的事情的最佳方式。
因此,如果您的插件(扩展程序或Chrome应用程序)将在受控环境中工作,那么这是可行的方法,否则,我会考虑与ClickOnce
或WebAssembly
但尚未完全发布的内容。
Chrome自带的扩展程序管理器支持用js
和html
编写的扩展程序。
也就是说,要在扩展程序中执行c#
代码,您有两个选择:
- 将
c#
代码编译为javascript
代码,然后将其作为普通的javascript
扩展添加到chrome(请查看scriptsharp ) - 使用c#作为后端系统。 就像大多数
download managers
:
对于案例2,您需要在客户端设备(或云端)中安装ac#应用程序列表到特定端口(使用httplistener
或self hosted webapi (you can use netcore)
执行这些步骤
- 列出传入的请求
- 解析请求数据,例如。
json
并用它做点什么 - 将结果返回到
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库 。