首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TWebBrowser.Navigate(URL、标志、TargetFrameName、PostData、Header)在边缘浏览器中不可用

TWebBrowser.Navigate(URL、标志、TargetFrameName、PostData、Header)在边缘浏览器中不可用
EN

Stack Overflow用户
提问于 2022-07-05 05:16:10
回答 1查看 168关注 0票数 0

从Delphi XE8到Delphi11的迁移正在进行中。

在Delphi xe8中,我使用了使用TWebBrowser.Navigate的post方法(URL、标志、TargetFrameName、PostData、Header)。

然而,在Delphi 11中,我试图通过edgebrowser (或TWebBrowser的边缘引擎)调用post方法,但发现这是不可能的。

函数TCustomEdgeBrowser.Navigate(const AUri: string) =>只存在上述函数

我在找如何解决这个问题的答案。

EN

回答 1

Stack Overflow用户

发布于 2022-07-05 07:13:05

为了做到这一点,您需要一个支持ICoreWebView2_2和ICoreWebView2Environment2接口的组件,而且TWebBrowser和TEdgeBrowser似乎不支持它们。

尝试使用WebView4Delphi并运行NavigateWithWebResourceRequestBrowser演示。

该演示展示了如何使用带有TWVBrowserBase.NavigateWithWebResourceRequest调用的POST请求导航。就像这样:

代码语言:javascript
运行
复制
procedure TMainForm.GoBtnClick(Sender: TObject);
var
  TempRequest : ICoreWebView2WebResourceRequest;
  TempAdapter : IStream;
  TempParams, TempHeaders, TempMethod : string;
begin
  TempRequest := nil;
  TempAdapter := nil;

  try
    if assigned(FBody) then FreeAndNil(FBody);

    TempMethod  := 'POST';
    TempHeaders := 'Content-Type: application/x-www-form-urlencoded';
    TempParams  := PostParam1NameEdt.Text + '=' + PostParam1ValueEdt.Text + '&' + PostParam2NameEdt.Text + '=' + PostParam2ValueEdt.Text;
    FBody       := TStringStream.Create(TempParams);
    TempAdapter := TStreamAdapter.Create(FBody, soReference);

    if WVBrowser1.CoreWebView2Environment.CreateWebResourceRequest(AddressCb.Text, TempMethod, TempAdapter, TempHeaders, TempRequest) then
      WVBrowser1.NavigateWithWebResourceRequest(TempRequest);
  finally
    TempRequest := nil;
    TempAdapter := nil;
  end;
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72864306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档