Есть ли лучший контроль веб-браузера в C # (.NET)? - PullRequest
7 голосов
/ 01 апреля 2009

Мне нужно, чтобы JavaScript работал почти идеально в моем приложении, чтобы иметь возможность доступа к веб-контенту и позволить пользователю контролировать его. Однако компонент веб-браузера открывает новые окна в отдельном экземпляре / приложении Internet Explorer, и dotBrowser не работает с JavaScript должным образом.

Пожалуйста, дайте мне какой-нибудь совет - я бы даже взял какой-нибудь рабочий пример и усовершенствовал его функцией, для которой он мне нужен.

Ответы [ 2 ]

11 голосов
/ 01 апреля 2009

Посмотрите на GeckoFX , на компоненте с открытым исходным кодом для встраивания Mozilla Gecko (Firefox) в приложения .NET.

1 голос
/ 01 апреля 2009

Я могу ошибаться, но я считаю, что новые окна можно контролировать (или, по крайней мере, подавлять) с помощью элемента управления веб-браузера в .NET. Посмотрите на событие NewWindow.

У меня был опыт встраивания ядер WebKit (Apple Core, используемый в Chrome) и XULRunner (Gecko) в WinNET-приложения .NET. Позвольте дать вам несколько советов:

GeckoFX - ваш лучший выбор. Он лицензирован под MPL и работает практически из коробки. Внимательно следуйте инструкциям и извлеките точную версию XUL, которая указана. Я бы сказал, что он работает лучше, чем элемент управления WebBrowser. Есть некоторые разговоры о значительной задержке при загрузке XUL в первый раз, но я обнаружил, что она незначительна. Брендинг и т.п. полностью настраиваются с помощью внешних файлов.

WebKit встраивается с SwiftDotNet. Если все, что вам нужно, это хорошая производительность JavaScript, то это может быть вариант. Если вам нужно иметь возможность загружать файлы, у вас есть кое-какая работа для вас.

Ваш недостаток в обоих маршрутах - неприятные накладные расходы ~ 7-8 МБ, даже со сжатием (хотя мне удалось получить 6,5 МБ со сжатием lz в NSIS). Если вы не создаете распространяемое программное обеспечение, ориентированное на потребителя, тогда это может не быть проблемой для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...