【问题标题】:How can I use javascript in TWebBrowser in Delphi XE5 on all platforms (IOS,WIN,ANDROID)?如何在所有平台(IOS、WIN、ANDROID)上的 Delphi XE5 的 TWebBrowser 中使用 javascript?
【发布时间】:2013-11-13 07:51:47
【问题描述】:

我想在 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)?

还有其他解决办法吗?

【问题讨论】:

    标签: javascript android google-maps twebbrowser delphi-xe5


    【解决方案1】:

    根据 Android WebViewthe documentation 的外观,我目前假设(没有资源的资源)在 TWebBrowser 之后,你需要拉出底层的 Android @ 987654325@ 并调用它的 add JavascriptInterface() 方法(documentation here)。

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

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

    【讨论】:

    • 感谢您的回答。我考虑过,但它仅适用于 ANDROID,但 TWebBrowser 适用于所有平台。也许嵌入了像铬一样的网络浏览器,但我不知道它是否适用于WIN以外的其他平台。也许你知道答案??
    • 这个问题被标记为 Android,所以我确实给出了一个面向 Android 的答案。我不确定您是否会轻易获得跨平台解决方案,而无需对单独的实现进行某种程度的抽象,就像TWebBrowser 已经在其实现中采用的那样。
    • 非常感谢您的宝贵时间。如果不起作用,我会尝试铬,我会听从你的指示。
    • 我发现 Delphi 有 Androidapi.JNI.WebKit 但有人可以帮助我如何在我的 fmx 窗口中创建和显示浏览器吗?请给我一些指导....谢谢
    • 顺便说一句,也许你可以概述一下你是如何解决它的,以防将来有人会在这里谷歌。他会在你的路标上得到帮助,而不仅仅是“有可能”。 Stack Overflow 旨在成为所有内容的终极文档,因此问题的解决方案越多 - 它就越好
    【解决方案2】:

    我建议你使用类似的东西:

     TWebBrowser.Document AS IHTMLDocument2 
    

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

    希望对您有所帮助...我不是 XE5 之神 :-)

    【讨论】:

    【解决方案3】:

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

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

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

    目前正在为同样的问题苦苦挣扎。

    【讨论】:

      猜你喜欢
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 2017-07-15
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多