【发布时间】:2015-05-05 07:06:53
【问题描述】:
如何从TTMSFMXWebBrowser中的JavaScript代码调用Firemonkey代码(回调)?
我可以从 Firemonkey 执行 JavaScript 代码,但是如何从 JavaScript 进行回调或调用 Firemonkey 代码/事件?
有可能吗?
【问题讨论】:
标签: javascript delphi firemonkey
如何从TTMSFMXWebBrowser中的JavaScript代码调用Firemonkey代码(回调)?
我可以从 Firemonkey 执行 JavaScript 代码,但是如何从 JavaScript 进行回调或调用 Firemonkey 代码/事件?
有可能吗?
【问题讨论】:
标签: javascript delphi firemonkey
因此,您可以在 URL 中传递自定义字符串或类似这样的任何数据:
myurl://dostuff?a=b&c=d
if (Copy(S, 1, 8)='myurl://') then
begin
// now you know it is a callback and not a real URL
// if it is a callback you can cancel the load using the below code
// and then process the callback
end;
TWebBrowser:
procedure TForm2.WebBrowser1ShouldStartLoadWithRequest(ASender: TObject;
const URL: string);
begin
// check URL and
WebBrowser1.Stop;
end;
TTMSFMXWeb浏览器:
procedure TForm2.TMSFMXWebBrowser1BeforeNavigate(Sender: TObject;
var Params: TTMSFMXCustomWebBrowserBeforeNavigateParams);
begin
// Get your result from Params.URL and cancel via Params.Cancel := True;
end;
【讨论】:
你应该在问之前先试试谷歌......
Firemonkey WebBrowser 是一个包装器,它依赖于平台。
查看此示例以了解 Windows 上的 TWebBrowser
http://www.delphidabbler.com/articles?article=22&part=1
由于 WebBrowser 是一个包装器,它不会公开所有功能。 您必须根据自己的目的对其进行一些修改。
您也可以查看这些主题
Callback Delphi function from TWebBrowser by javascript on Delphi XE6 for all platforms (including iOS, ANDROID)?
http://delphi.radsoft.com.au/2013/11/adding-javascript-processing-capability-to-twebbrowser-in-ios/
【讨论】: