用 C# 编写 chrome 扩展?

Ali*_*Ali 5 c# asp.net-mvc google-chrome-extension

今天我第一次开始研究 Chrome 扩展,我有一个非常愚蠢的问题,我确定根据谷歌搜索,答案是否定的,但我只是想从这里的社区中确定。

  1. 是否可以使用 C# 代替 javascript 编写代码?
  2. 是否可以在 chrome 扩展中使用局部视图(ASP.NET MVC)来呈现 HTML?
  3. 我在 VS Marketplace https://marketplace.visualstudio.com/items?itemName=MadsKristensen.GoogleChromeExtensionProjectTemplate 中找到了这个 有没有其他模板有引导程序等

干杯

key*_*oon 28

您可以使用 C# 创建浏览器扩展。具体来说,使用客户端 Blazor。

要发布,需要进行以下操作。

首先,您像普通的独立应用程序一样发布。 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/webassembly?view=aspnetcore-3.1#standalone-deployment

然后,从目录名称中删除下划线。因为它不能在扩展中使用。

# remove underbar from directory name
mv _framework/_bin _framework/bin
mv _framework framework
# rewrite
sed 's/_bin/bin/g' framework/blazor.webassembly.js
sed 's/_framework/framework/g' framework/blazor.webassembly.js index.html
Run Code Online (Sandbox Code Playgroud)

然后,添加 manifest.json 并像这样设置 CSP,

"content_security_policy": "script-src 'self' 'unsafe-eval' 'sha256-v8v3RKRPmN4odZ1CWM5gw80QKPCCWMcpNeOmimNL2AA='; object-src 'self'",
Run Code Online (Sandbox Code Playgroud)

Blazor 启动脚本将脚本标记添加到 html,因此您应该添加脚本哈希以允许执行启动脚本。

这是我创建的示例应用程序。 https://github.com/key-moon/WeatherForecastExtensionWithBlazor 而且,这是评论(用日语写的)。 https://qiita.com/keymoon/items/03357e58eddf75871527


小智 9

是的,您可以用 C# 编写 Chrome 扩展程序,而且很简单。

\n

我尝试了以下。它速度很快并且立即生效:

\n
    \n
  • 运行 dotnet new --install Blazor.BrowserExtension.Template。
  • \n
  • 运行 dotnet new browserext --name 以使用模板初始化新项目。
  • \n
  • 将工作目录更改为新创建的项目目录。
  • \n
  • 运行 dotnet build 来构建项目。
  • \n
\n

在谷歌浏览器上:

\n
    \n
  • 启动扩展页面( \xe2\x8b\xae \xe2\x86\x92 更多工具 \xe2\x86\x92 Extensions)。
  • \n
  • 打开开发者模式。
  • \n
  • 单击“加载解压文件”按钮,然后导航到 %ProjectDir%\\bin\\Debug\\net5.0\\ 并选择文件浏览器扩展名。
  • \n
\n

来源: https: //github.com/mingyaulee/Blazor.BrowserExtension

\n

非常感谢“mingyaulee”如此出色的作品并分享。

\n


小智 7

现在,在 Blazor WebAssembly 的帮助下,您绝对可以(相当)轻松地使用 C# 创建 Chrome 扩展。

如果您仍然有兴趣尝试或者其他人有兴趣,我已经在存储库Blazor.BrowserExtension中创建了一个包。只需按照链接中的步骤即可创建项目。

有了这个包,您就可以在扩展中获得所需的东西。目前它支持背景、弹出窗口(浏览器操作)、选项页面甚至内容脚本(需要额外设置)。只需构建项目,然后您就可以从构建的输出加载解压的扩展。

Chrome 扩展 API 可在 Razor 页面中或通过依赖项注入访问。API 是从另一个包WebExtension.Net导入的。


ele*_*ser 5

更新:

您可以使用基于 C# 的 https://github.com/mingyaulee/Blazor.BrowserExtension项目并构建可分发的 chrome 扩展。

原答案:

Chrome 扩展程序在浏览器中运行,因此您不能在 Chrome 扩展程序开发中使用C# 。

同样,Chrome 扩展程序在浏览器中运行,因此您不能在 Chrome 扩展程序开发中使用ASP.NET MVC,但您可以在服务器上使用ASP.NET MVC或任何其他语言来生成视图并使用 ajax 在 Chrome 扩展程序中渲染它们。

看看这个: https: //github.com/Ehesp/Chrome-Extension-Twitter-Bootstrap-3-Template