Могу ли я общаться с Google Chrome на С#?
Для написания хром-плагина, например.
Могу ли я общаться с Google Chrome на С#?
Для написания хром-плагина, например.
<Spoilers>
Быстрый короткий ответ: Нет, потому что для расширений требуются JSON, JavaScript и HTML.
</Spoilers>
Привет, Тони,
В Интернете есть несколько шаблонов, которые можно загрузить для создания проекта расширения chrome с помощью Visual Studio.
Загрузка одного из этих шаблонов дает вам файлы и папки, которые вам нужны, которые я называю "настройка".
Это не позволит вам строить расширение Google с помощью С#.
Андрей упомянул, что есть библиотеки вроде Bridge.NET, которые скомпилируют ваш код в HTML/JavaScript. Это поможет вам писать HTML и JavaScript с помощью С#. Вам все еще нужен файл manifest.json.
Я не рекомендую этого. Эта библиотека не предназначена для Chrome Extensions. Кроме того, вам придется скомпилировать код в JavaScript и сохранить этот код JavaScript в файле JavaScript. Я рекомендую использовать HTML/JavaScript без компиляторов при создании расширения Chrome.
Вам нужно иметь в виду, что в хромовом расширении есть 3 основные части. Это:
manifest.json
Файл JavaScript
HTML файл
Существует несколько этапов, и не сложно построить расширение Chrome. Эта ссылка предоставит вам полное руководство по разработке расширения chrome с подробным объяснением. В этом учебном руководстве установлен шаблон, чтобы вы могли его развить в Visual Studio как я уже упоминал ранее.
То, что я сделал для адресации, - это использование Simple Message Host
, оно вызовет исполняемый файл на локальном компьютере, который вы кодируете в С#, отправив stdin
сообщения и прослушивая сообщения stdout
, чтобы вы могли создать этот хост для использования как мост, но, как я уже сказал, он должен быть на вашем local network
, по крайней мере, и вы должны сделать некоторое редактирование в windows registry
, поэтому оно имеет свои ограничения.
Но для системы, с которой я работаю, это решение отлично работает, потому что у меня есть контролируемая среда, в которой я могу настроить все эти предварительные условия.
Итак, просто для того, чтобы уточнить, что я здесь сделал:
Создайте расширение chrome с помощью background.js
, чтобы открыть слушателя на веб-сайте javascript.
Добавить реестр в windows registry
, указывающий на путь исполняемого файла.
Создайте исполняемый файл на С#, выполнив всю вашу логику.
Отправьте ответ от исполняемого файла на расширение, а затем обратно на веб-сайт.
Есть несколько руководств о том, как это сделать, поэтому я не буду описывать эти шаги здесь, поэтому я не реплицирую его.
Но на данный момент это лучший способ сделать то, что вы хотите, если у вас есть контроль над вашей средой.
Итак, если ваш плагин (расширение или хром-приложение) будет работать в контролируемой среде, это путь, иначе я бы рассмотрел что-то, связанное с ClickOnce
возможно или WebAssembly
, но еще не полностью выпущенное.
Тема довольно старая, но я хотел бы поделиться этим примером: https://github.com/Retyped/Demos/tree/master/ChromeDemo
В нескольких словах образец реализован на С#. Retyped.chrome Пакет NuGet предоставляет привязки (API Chrome) для Bridge.NET проекты. Итак, да, теперь вы можете реализовать свою логику в С#, тогда код С# будет прозрачно скомпилирован в JavaScript компилятором Bridge.NET.
С помощью этого подхода вы можете создать расширение Chrome поверх .NET Framework, а также использовать тысячи библиотек JavaScript.
собственный менеджер расширений Chrome поддерживает расширения, написанные в js
и html
.
который сказал, чтобы выполнить код c#
внутри расширения, у вас есть два варианта:
c#
код javascript
, который затем можно добавить в качестве обычного расширения javascript
в chrome (посмотрите scriptsharp)download managers
:для случая 2 вам нужно приложение С#, установленное на клиентском устройстве (или в облаке), перечисление на конкретный порт (используя httplistener
или self hosted webapi (you can use netcore)
, которые выполняют следующие шаги
json
и сделать что-то с нейjavascript
, которое может отображать его пользователю или делать с ним другие вещи.