来自 Firemonkey WebBrowser JavaScript 代码的回调
Callback from Firemonkey WebBrowser JavaScript code
如何从 TTMSFMXWebBrowser 中的 JavaScript 代码调用 Firemonkey 代码(回调)?
我可以从 Firemonkey 执行 JavaScript 代码,但是如何从 JavaScript 进行回调或调用 Firemonkey code/event?
可以吗?
你应该先尝试Google再问...
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/
因此,在 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;
TWeb 浏览器:
procedure TForm2.WebBrowser1ShouldStartLoadWithRequest(ASender: TObject;
const URL: string);
begin
// check URL and
WebBrowser1.Stop;
end;
TTMSFMXWebBrowser:
procedure TForm2.TMSFMXWebBrowser1BeforeNavigate(Sender: TObject;
var Params: TTMSFMXCustomWebBrowserBeforeNavigateParams);
begin
// Get your result from Params.URL and cancel via Params.Cancel := True;
end;
如何从 TTMSFMXWebBrowser 中的 JavaScript 代码调用 Firemonkey 代码(回调)?
我可以从 Firemonkey 执行 JavaScript 代码,但是如何从 JavaScript 进行回调或调用 Firemonkey code/event?
可以吗?
你应该先尝试Google再问...
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/
因此,在 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;
TWeb 浏览器:
procedure TForm2.WebBrowser1ShouldStartLoadWithRequest(ASender: TObject;
const URL: string);
begin
// check URL and
WebBrowser1.Stop;
end;
TTMSFMXWebBrowser:
procedure TForm2.TMSFMXWebBrowser1BeforeNavigate(Sender: TObject;
var Params: TTMSFMXCustomWebBrowserBeforeNavigateParams);
begin
// Get your result from Params.URL and cancel via Params.Cancel := True;
end;