今天我第一次开始关注Chrome扩展程序,我有一个非常愚蠢的问题,我相信谷歌搜索的答案是否定的,但我只是想在这里确认社区。
干杯
答案 0 :(得分:4)
Chrome扩展程序在浏览器中运行,因此您无法在Chrome扩展程序开发中使用 C#。
Chrome扩展程序再次在浏览器中运行,因此您无法在Chrome扩展程序开发中使用 ASP.NET MVC ,但您可以使用 ASP.NET MVC 或任何其他服务器上的语言,用于生成视图并使用ajax在chrome扩展中呈现它们。
看看这个:https://github.com/Ehesp/Chrome-Extension-Twitter-Bootstrap-3-Template
答案 1 :(得分:1)
从技术上讲,您可以使用C#二进制文件作为Native Host,与浏览器中的JavaScript部分对话。
然而,这会使您的扩展分发变得复杂,因为您无法将两者捆绑到CWS;必须单独安装本机主机组件。
只有当您有合理的理由在浏览器沙箱中执行某些不可能的操作时,才应使用此方法。
答案 2 :(得分:1)
您可以使用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
然后,添加manifest.json并像这样设置CSP,
"content_security_policy": "script-src 'self' 'unsafe-eval' 'sha256-v8v3RKRPmN4odZ1CWM5gw80QKPCCWMcpNeOmimNL2AA='; object-src 'self'",
Blazor引导脚本将脚本标记添加到html,因此您应添加脚本哈希以允许执行引导脚本。
这是我创建的示例应用程序。 https://github.com/key-moon/WeatherForecastExtensionWithBlazor 并且,这是评论(用日语写)。 https://qiita.com/keymoon/items/03357e58eddf75871527
答案 3 :(得分:0)
不得在JavaScript中分发Chrome扩展程序。
从技术上讲,你可以编写任何可以编译成JavaScript的东西,比如Dart或TypeScript。
请参阅此处以获得简要介绍:https://developer.chrome.com/extensions
答案 4 :(得分:0)
使用Blazor并将其编写为普通的html / css吧?尽管您仍然需要构建blazor项目,但我认为使用C#编写扩展在技术上是可能的
答案 5 :(得分:0)
现在借助 Blazor WebAssembly,您绝对可以使用 C# 轻松创建 Chrome 扩展程序(相当)。
如果您仍然有兴趣尝试或其他人有兴趣,我已在存储库 Blazor.BrowserExtension 中创建了一个包。只需按照链接中的步骤创建项目即可。
有了这个包,你就可以在扩展中获得你需要的东西。目前它支持背景、弹出窗口(浏览器操作)、选项页面甚至内容脚本(需要额外设置)。只需构建项目,然后您就可以从构建的输出中加载解压后的扩展。
Chrome 扩展 API 可在 Razor 页面或从依赖注入访问。 API 是从另一个包 WebExtension.Net 导入的。