Есть ли техническая причина не использовать TWebBrowser в Delphi для просмотра Google Планета Земля?

Я надеюсь, что это не будет удалено как субъективное. Единственная субъективная часть может заключаться в том, что 1) мой Delphi лучше моего PHP и 2) я предпочитаю компилировать интерпретируемые языки программирования.

Однако фактический (не субъективный) вопрос заключается в следующем: если я выберу Delphi и использую TWebBrowser (или аналогичный механизм) для просмотра/управления Google Планета Земля, ограничу ли я каким-либо образом доступную функциональность?

Есть ли что-то, что я могу делать только «в браузере», но не могу делать «в компоненте браузера VCL»?

[Обновление] Я забыл сказать, что 1) мне удобно работать только с Windows и 2) функциональность Google Планета Земля является лишь частью более крупного ПРИЛОЖЕНИЯ (для меня проще реализовать это приложение как программу Delphi, чем что-то в браузере). на основе, но это снова звучит субъективно, поэтому я никогда не упоминал об этом. Я просто буду придерживаться вопроса «если я выберу Delphi и использую TWebBrowser, ограничу ли я каким-либо образом доступную функциональность?» в качестве вопроса, поскольку это может получить ответ.


person Mawg says reinstate Monica    schedule 04.07.2012    source источник
comment
Вы будете ограничивать себя платформой, на которой работает ваш код. Обычно это Windows, если вы используете TWebBrowser.   -  person David Heffernan    schedule 04.07.2012
comment
Я still wondering, если кто-то тестировал TChromiumFMX в Mac OS, если это вообще возможно.   -  person TLama    schedule 04.07.2012
comment
Хорошо, это вопрос Delphi против PHP? если вы не привязаны к PHP, взгляните на Python.   -  person Leonardo Herrera    schedule 04.07.2012
comment
Я обнаружил, что Chrome Embedded Framework (CEF) обеспечивает гораздо более высокую производительность, чем IE. Во-вторых, я обнаружил, что TEmbeddedWB с bsalsa2000.com является гораздо более эффективной оболочкой для InternetExplorer (IShellDocView), чем TWebBrowser, который устанавливается в delphi. На самом деле, одним из преимуществ TWebBrowser является то, что он уже встроен. Нет ничего плохого в том, чтобы использовать его, если вы им довольны.   -  person Warren P    schedule 04.07.2012
comment
несколько +1 там. Спасибо, как всегда, Уоррен. Любая ваша рекомендация всегда стоит того. Кстати, в URL нет 2000. Дополнительные сведения см. на странице bsalsa.com/product.html.   -  person Mawg says reinstate Monica    schedule 05.07.2012


Ответы (3)


Нет никаких технических причин, почему бы не использовать TWebBrowser для отображения карт или чего-то подобного. На самом деле, это вопрос мнения, и, скорее всего, вы слышали мнение людей, говорящих вам не делать этого. К сожалению, Stack Overflow — это сайт вопросов и ответов, поэтому такой вопрос не всегда возможен.

TWebBrowser оборачивает окно браузера Internet Explorer и зависит от установленной версии IE. Все, что вы можете открыть в Internet Explorer, также можно открыть в TWebBrowser, включая Google Earth. Это вопрос указания на страницу и ее загрузки. Что касается технических причин, то тут и там могут быть какие-то глюки, но я не понимаю, почему бы и нет.

person Jerry Dodge    schedule 04.07.2012
comment
+1, где +2 за ответ на вопрос, -1 за могут быть какие-то глюки здесь и там потому что они есть и они достаточно критичны. - person TLama; 04.07.2012
comment
лол глюки. @TLama, все начинается с правильного понимания того, как работает этот компонент и какие пробелы вам нужно заполнить, чтобы обеспечить хороший опыт работы с twebbrowser. - person whosrdaddy; 04.07.2012
comment
Все, что вы можете открыть в Internet Explorer, также может быть открыто в TWebBrowser, возможно, не на 100%, а только на 99,99% или около того. Во-первых, пользовательский агент, о котором сообщает TWebBrowser, может не совпадать с тем, о котором сообщает настоящий установленный IE. - person Andreas Rejbrand; 04.07.2012
comment
@AndreasRejbrand, я помню, что пользовательский агент был настолько привязан к установленному браузеру, что, если вы изменили его в своей программе, вам действительно пришлось изменить реестр, и он изменил строку пользовательского агента установленного вами браузера. Это уже не правда? - person Leonardo Herrera; 04.07.2012
comment
Ну, чтобы быть немного ясным, это может не соответствовать вашим потребностям на 100% с самого начала, конечно, есть некоторые вещи, которые необходимо понять и настроить, прежде чем ожидать, что TWebBrowser будет делать все, что вы хотите. Но с ним возможно практически все, просто нужно знать, какие дыры заполнять, как говорит whosrdaddy. Например, можно перехватывать события javascript и обрабатывать их в Delphi, но он не готов к этому, для этого нужно приложить немало усилий. Но это все еще возможно. - person Jerry Dodge; 06.07.2012
comment
+1 Очень хороший момент - и тот, о котором я не подумал (какие-нибудь URL-адреса? ;-) - person Mawg says reinstate Monica; 06.07.2012

Есть ли что-то, что я могу делать только «в браузере», но не могу делать «в компоненте браузера VCL»?

Короткий ответ: если вы знаете TWebBrowser (на основе IE) / DelphiChromiumEmbedded (Webkit) наизнанку вы не ограничены.

Два основных известных мне браузера основаны на элементе управления TWebBrowser/IE — Avant Browser (написан на Delphi) и Maxthon (я пользовался обоими, и они мне очень хорошо служили, пока я полностью не перешел на FF) - никогда не было проблемы с совместимостью с ними (по сравнению с приложением IE).

Хорошей отправной точкой будет TEmbeddedWB — этот пакет содержит интерфейс IWebBrowser и библиотеку управления (SHDOCVW. DLL), чтобы вы могли создать собственное приложение для просмотра веб-страниц.

У элемента управления веб-браузера есть одна очень важная проблема: по умолчанию он использует режим рендеринга IE 7. поэтому вам нужно будет указать режим рендеринга IE для вашего собственного приложения (см. эту статью). Есть и другие проблемы, но большинство из них можно настроить и настроить с помощью ключей реестра FeatureControl:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl

person kobik    schedule 05.07.2012

Да, есть одно — Chromium Embedded Framework (CEF) гораздо более производительный, чем IE, особенно в случае, когда ваш конечный пользователь использует более раннюю версию IE.

CEF основан на проекте Google Chromium с открытым исходным кодом.

Я использую CEF в LIVEditor (мой новый живой HTML-редактор), и результат очень-очень хорош!

Но обратите внимание, что вам придется распространять дополнительные файлы размером 20 МБ при сжатии.

person Edwin Yip    schedule 05.07.2012
comment
1 Спасибо. Я искал это с тех пор, как Уоррен рекомендовал его - person Mawg says reinstate Monica; 06.07.2012