Добавить новый элемент Microsoft Edge для управления веб-браузером?
Появилась новая Windows 10 с Microsoft Edge. Я хочу спросить вас, как я могу добавить его в свой веб-браузер? Мне это нужно, потому что фактический элемент управления веб-браузером не позволяет использовать JavaScript и CSS3.
Раньше я также добавлял браузер Chrome с проектами WebKit и Awesomium, но они не помнили учетные данные для входа (они мне нужны для моего приложения), поэтому я должен использовать I.E. к сожалению.
Ответы
Ответ 1
К сожалению, кажется, что в настоящее время нет способа использовать Edge в элементе управления веб-браузером MS без использования сторонних аддонов. Хотя предлагаемое "решение" для добавления dword: 00002ee1 в FEATURE_BROWSER_EMULATION заставляет webbrowser (ложно) сообщать Edge/12.9200_AGENT как USER_AGENT, на самом деле он все еще использует движок Trident для рендеринга веб-контента. Похоже, что Microsoft планировала поддерживать Edge в управлении веб-браузером, но не закончила и забыла вынуть соответствующий ключ эмуляции. Вы можете проверить это, просмотрев http://html5test.com/, где элемент управления веб-браузером оценивается между 342 и 347 точками (то же, что и IE11), а Edge - 397 пунктов.
Ответ 2
ОБНОВЛЕНИЕ Как указано в ответе @MartinKasztantowicz, на данный момент (середина февраля 16) не существует известного способа загрузки реального механизма рендеринга Edge.
Следующее задает элемент управления, чтобы сообщить о новом пользовательском агенте, но использует старый механизм для рендеринга. Это полезно, тем не менее, для, например, убеждая сайты отключить устаревшие IE-хаки.
Версия браузера System.Windows.Forms.WebBrowser
контролируется для каждого приложения ключом реестра. Если ваши пользователи находятся в Windows 10, вы можете указать элементу управления load fake Edge, добавив следующий ключ:
- Для 64-битных приложений 32-разрядная только Windows или текущий пользователь:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"Example.exe"=dword:00002ee1
соответственно [HKEY_CURRENT_USER\...]
- Для 32-битных приложений на 64-битных машинах (только для всего машинного):
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"Example.exe"=dword:00002ee1
Я только что протестировал и получил следующий результат... не знаю, есть ли какие-либо значения, чтобы также сообщить Windows 10:
![введите описание изображения здесь]()
Ответ 3
Я бы хотел, чтобы кто-то упомянул об этом, поэтому я добавлю это, потому что это не похоже, что управление веб-браузером будет постоянно обновляться.
Вместо этого используйте элемент управления WebView. Для этого используется механизм рендеринга EdgeHTML. Это часть слоя WindowPresentation, но можно связать его с WinForms и, возможно, с другими приложениями.
import Windows.UI.Xaml.Controls.WebView
Пример кода: https://code.msdn.microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7
Я еще не заменил свой WebBrowser на WebView, но интерфейс выглядит довольно знакомым.