如何在所有平台(IOS,WIN,ANDROID)的Delphi XE5中的TWebBrowser中使用javascrip

How can I use javascript in TWebBrowser in Delphi XE5 on all platforms (IOS,WIN,ANDROID)?

本文关键字:XE5 Delphi 中的 TWebBrowser javascrip ANDROID 平台 WIN IOS      更新时间:2023-09-26

我想在Delphi XE5中使用Android上的TWebBrowser连接到Google maps api。我编写了自己的组件,该组件适用于WIN平台。我用了TwebbrowserIHTMLDocument2.例如:

if Self.Document as IHTMLDocument2<>nil then
  with TWebBrowser(Self).Document as IHTMLDocument2 do
    with ParentWindow do
      execScript(aScript, 'JavaScript');

是否有机会在Android上运行TWebbrowser类似的东西(在TWebBrowser中执行javaScript)?

还有其他解决方案吗?

根据 Android

WebView 的文档来看,我目前假设(没有源资源)落后于TWebBrowser,您需要拉出底层 Android WebView并调用其 add JavascriptInterface() 方法(文档在这里)。

是否有人已经这样做了,我不知道。但这似乎是要求。下一步是研究如何访问底层WebView 。我想它隐藏在网络浏览器的 Android 实现单元中,所以这会很棘手,并且可能需要您修改源文件。

无论如何,希望这能让你开始。

我建议你使用这样的东西:

 TWebBrowser.Document AS IHTMLDocument2 

然后检查 OnKeyDown 事件 DOM 中所有输入对象的标题是什么。

希望对你有帮助...我不是XE5的神:-)

我看到一个示例,该示例将静态html写入本地文件,然后加载本地文件。

WebBrowser1.Navigate('file://MyFile.html')

如果你找到一个适用于iOS和Android的解决方案,我很想听听。

现在正在为同样的问题而苦苦挣扎。