我有一些C#代码,它展示了如何在WebView2中启用单点登录。
TEdgeBrowser不公开C#代码使用的任何属性。特别是,在Winapi.WebView2单元中为ICoreWebView2EnvironmentOptions定义的接口没有在其中定义的获取或设置AllowSingleSignOnUsingOSPrimaryAccount的功能。我相信这是因为它是由WebView2.tlb于2020年07年05/ 2020创建的,而该属性则是在2020年9月10日发布的版本中添加的。
我有什么选择?是否需要从最新的tlb创建自己版本的WebView2,然后复制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);
}));
}发布于 2022-07-23 16:31:13
试一试WebView4Delphi。WebView4Delphi完全更新为最新的WebView2版本,它支持所有的WebView2接口。
只需在GlobalWebView2Loader.StartWebView2调用之前添加这一行:
GlobalWebView2Loader.AllowSingleSignOnUsingOSPrimaryAccount := True;演示程序使用主单元的初始化部分创建GlobalWebView2Loader并设置属性。如果使用SimpleBrowser演示作为应用程序的模板,则必须添加前面的行这里。
GlobalWebView2Loader中的该属性用于共享相同ICoreWebView2Environment的所有浏览器,这是默认行为。
如果需要创建具有独立ICoreWebView2Environment的浏览器,则必须在TWVBrowserBase.CreateBrowser调用之前设置此属性:
MyWVBrowser.AllowSingleSignOnUsingOSPrimaryAccount := True;MyWVBrowser将是TWVBrowser的一个实例。
https://stackoverflow.com/questions/73091045
复制相似问题