发布日期 2022年04月07日
DotNetBrowser 2.13
更新内容
Password Manager API
Chromium 具有内置功能,用于在用户提交带有用户名和密码的网页表单后存储输入的凭据。在这种情况下,将使用 SavePasswordHandler
和 UpdatePasswordHandler
处理程序来决定是否保存凭据,或者如果凭据已保存则更新它们。
要以编程方式保存或更新用户凭据,请使用 SavePasswordHandler
和 UpdatePasswordHandler
,如下所示:
Browser.Passwords.SavePasswordHandler =
new Handler<SavePasswordParameters, SavePasswordResponse>(p =>
{
return SavePasswordResponse.Save;
});
Browser.Passwords.UpdatePasswordHandler =
new Handler<UpdatePasswordParameters, UpdatePasswordResponse>(p =>
{
return UpdatePasswordResponse.Update;
});
如果您保存了这些凭据,下次加载同样的表单并尝试填写时,将显示自动填充弹出窗口:
要访问和管理已保存的凭据,请使用 IPasswordStore
:
IReadOnlyList<PasswordRecord> allPasswords =
Engine.Profiles.Default.PasswordStore.All;
IReadOnlyList<PasswordRecord> savedPasswords =
Engine.Profiles.Default.PasswordStore.AllSaved;
IReadOnlyList<PasswordRecord> neverSavedPasswords =
Engine.Profiles.Default.PasswordStore.AllNeverSaved;
IPasswordStore
中保存的条目可以通过 URL 移除:
PasswordStore.RemoveByUrl(url);
要清除所有密码,请使用以下方法:
PasswordStore.Clear();
Chromium 100
Chromium 引擎已升级至 100.0.4896.60 版本。
此 Chromium 版本包含许多安全修复,所以我们强烈建议您升级至该版本。
扩展数组和集合支持
此版本为 JS-.NET 桥接带来了对集合的扩展支持。
新增了 IJsArray
, IJsSet
, IJsMap
和 IJsArrayBuffer
接口,以简化从 .NET 端与 JavaScript 集合的交互工作。
此外,注入的 .NET 集合扩展了一个方法,该方法可以从 JavaScript 调用以创建集合的纯 JavaScript 副本:
IEnumerable<T>
扩展了ToJsArray()
和ToJsSet()
方法;IDictionary<TKey,TValue>
和IReadOnlyDictionary<TKey,TValue>
扩展了ToJsMap()
方法;byte[]
扩展了ToJsArrayBuffer()
方法。
示例
Dictionary<int, string> dictionary =
new Dictionary<int, string> {{1, "test1"}, {2, "test2"}};
List<string> collection = new List<string> {"test1", "test2", "test3", "test1"};
byte[] bytes = {0xAA, 0xBB, 0xCC, 0xDD};
IJsObject document = Browser.MainFrame.ExecuteJavaScript<IJsObject>("document").Result;
document.Properties["dotNetDictionary"] = dictionary;
document.Properties["dotNetCollection"] = collection;
document.Properties["dotNetByteArray"] = bytes;
IJsMap resultMap =
Browser.MainFrame.ExecuteJavaScript("document.dotNetDictionary.ToJsMap()").Result
as IJsMap;
IJsSet resultSet =
Browser.MainFrame.ExecuteJavaScript("document.dotNetCollection.ToJsSet()").Result
as IJsSet;
IJsArray resultArray =
Browser.MainFrame.ExecuteJavaScript("document.dotNetCollection.ToJsArray()").Result
as IJsArray;
IJsArrayBuffer resultData =
Browser.MainFrame.ExecuteJavaScript("document.dotNetByteArray.ToJsArrayBuffer()").Result
as IJsArrayBuffer;
进程内 DevTools
现在可以在不配置远程调试端口的情况下以编程方式显示和隐藏 DevTools 窗口。
browser.DevTools.Show();
DevTools 将在单独的窗口中显示:
申请 30 天免费试用
下载 DotNetBrowser 2.13 (.NET Framework)
下载 DotNetBrowser 2.13 (.NET Core)
关注 @DotNetBrowser ,获取库的更新动态。
订阅我们的 RSS feed ,获取最新版本动态。