【发布时间】:2018-06-27 13:07:23
【问题描述】:
我在应用程序中使用 10.2.2 Tokyo Enterprise 和 FireMonkey 的 TWebBrowser。我希望收到回调响应,但是当我运行代码时ShouldStartLoadWithRequest 触发时,我没有收到返回的 URL。
我想知道这是否可以在不编写包装器的情况下实现。我觉得我错过了一些简单的事情。
我已经检查了这些网站以及更多网站,并尝试了许多不同的方法......
Callback from Firemonkey WebBrowser JavaScript code
Adding Javascript processing capability to TWebBrowser in iOS
这是我的简单代码版本:
index.html
<!DOCTYPE html><html lang="en">
<body>
<h2> Get Callback</h2>
</body>
</html>
procedure TForm2.FormCreate(Sender: TObject);
begin
WebBrowser1.URL := 'file://' + GetCurrentDir + '/../../index.html';
end;
procedure TForm2.Button1Click(Sender: TObject);
var
js : string;
begin
js := ' var url = "file://' + GetCurrentDir + '/../../index.html";'+
'var encodedurl = encodeURIComponent(url);'+
'window.location.href = encodedurl+"?67";';
WebBrowser1.EvaluateJavaScript(js);
end;
procedure TForm2.WebBrowser1ShouldStartLoadWithRequest(ASender: TObject;
const URL: string);
var
js,TheURL: String;
begin
TheURL := 'file://' + GetCurrentDir + '/../../index.html';
js := URL;
Fetch(js, TheURL+'?',true,false); //remove the URL and ?
js := TIdURI.URLDecode(js, IndyTextEncoding_UTF8);
Memo1.Lines.Text := js;
end;
原则上,更改 URL 的结尾应该会诱使 WebBrowser 相信它是一个新 URL,并且我应该能够在仍然保持页面刷新的同时提取数字 67。
请您指出正确的方向吗?
【问题讨论】:
标签: javascript delphi firemonkey twebbrowser delphi-10.2-tokyo