delphi 在TEdgeBrowser中启用单点登录

webghufk  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(556)

我有一些C#代码显示了如何在WebView 2中启用单点登录。
TEdgeBrowser没有公开C#代码使用的任何属性。特别是在Winapi.WebView2单元中为ICoreWebView 2 EnvironmentOptions定义的接口没有在其中定义用于获取或设置AllowSingleSignOnUsingOSPrimaryAccount的函数。我认为这是因为它是在2020年5月7日从WebView2.tlb创建的,而该属性是在9月10日发布的版本中添加的。2020.
我有什么选择?我是否需要从最新的tlb创建自己的WebView 2版本,然后复制Vcl.Edge单元中的代码,以获得启用了SSO选项的组件?
我不需要一个可视组件-我很乐意用代码创建浏览器。
C#程式码为:

private async void Form1_Load(object sender, EventArgs e)
{
  var browser = new WebView2();

  var options = new CoreWebView2EnvironmentOptions();
  options.AllowSingleSignOnUsingOSPrimaryAccount = true;

  var environment = await CoreWebView2Environment.CreateAsync(options: options).ConfigureAwait(false);

  await browser.EnsureCoreWebView2Async(environment).ConfigureAwait(false);

  Invoke((MethodInvoker)(() =>
  {
      browser.Dock = DockStyle.Fill;
      this.Controls.Add(browser);
      browser.Source = new Uri(https://example.com);
  }));
}
q3qa4bjr

q3qa4bjr1#

WebView4Delphi完全更新到了最新的WebView2版本,它支持所有的WebView2接口。
您只需在GlobalWebView2Loader.StartWebView2调用之前添加以下行:

GlobalWebView2Loader.AllowSingleSignOnUsingOSPrimaryAccount := True;

这些演示使用主单元的初始化部分来创建GlobalWebView2Loader并设置属性。如果您使用SimpleBrowser演示作为应用程序的模板,则必须在此处添加上一行。
GlobalWebView2Loader中的该属性用于共享同一个ICoreWebView2Environment的所有浏览器,这是默认行为。
如果您需要创建一个具有独立ICoreWebView2Environment的浏览器,则必须在TWVBrowserBase.CreateBrowser调用之前设置此属性:

MyWVBrowser.AllowSingleSignOnUsingOSPrimaryAccount := True;

MyWVBrowser将是TWVBrowser的一个示例。

相关问题