Author: Nikolay M4446
Одно из небольших нововведений в XE6 для компонента TWebBrowser, это появление метода EvaluateJavaScript, позволяющего выполнить JavaScript на загруженной странице и добавить интерактивности нашим приложениям.
На сайте developers.google.com приведено множество примеров встраивания карт на страничку. Мне приглянулся пример прокладывания маршрута из пункта А в пункт Б. Ну а в качестве примера выполнения JavaScript, я определю две кнопки для прокладывания предопределённых путей Из пункта chicago в пункт winona и из пункта st louis в пункт gallup.
Создаём новый мобильный проект, на форму кидаем TWebBrowser, TPanel и два TButton на TPanel.
Для удобства, я создам так же ещё один юнит uJavaScripts.pas для кода страницы и самих скриптов. Самое муторное — скопипастить код из примера и оформить его как константу. У меня получилось это сделать примерно так:
| — | ||
|
Код целиком взят из примера с сайта Google.
Осталось загрузить его в браузер. Для этого в событии FormCreate загрузим его
|
1 |
WebBrowser1.LoadFromStrings(cRoute, <span style="color:#0000ff;">''</span>); |
Уже можно запустить и посмотреть. На iPhone5 всё выглядит так:

Добавим две константы:
|
1 2 3 4 5 6 7 8 |
cChicagoWinona = <span style="color:#0000ff;">'document.getElementById(''start'').value = "chicago, il";'</span> + <span style="color:#0000ff;">'document.getElementById(''end'').value = "winona, az";'</span> + <span style="color:#0000ff;">'calcRoute();'</span>; cStLouisGallupNM = <span style="color:#0000ff;">'document.getElementById(''start'').value = "st louis, mo";'</span> + <span style="color:#0000ff;">'document.getElementById(''end'').value = "gallup, nm";'</span> + <span style="color:#0000ff;">'calcRoute();'</span>; |
И добавим обработчики для кнопок:
|
1 2 3 4 5 6 7 8 9 |
<span style="font-weight:bold;color:#00008b;">procedure</span> TForm1.Button1Click(Sender: TObject); <span style="font-weight:bold;color:#00008b;">begin</span> WebBrowser1.EvaluateJavaScript(cChicagoWinona); <span style="font-weight:bold;color:#00008b;">end</span>; <span style="font-weight:bold;color:#00008b;">procedure</span> TForm1.Button2Click(Sender: TObject); <span style="font-weight:bold;color:#00008b;">begin</span> WebBrowser1.EvaluateJavaScript(cStLouisGallupNM); <span style="font-weight:bold;color:#00008b;">end</span>; |
Всё. Как результат: мы можем либо выбрать произвольный маршрут на странице, либо, используя JavaScript выбрать предопределённый заранее.
Ну и пример, как выглядит наше приложение на iPhone и Kindle Fire HD

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Free Delphi Community Edition Free C++Builder Community Edition







