是否存在用于获取Edge浏览器用户数据位置的注册表值?

问题描述

我的应用程序使用Edge浏览器在应用程序中启动网页。我正在使用WebView2 API。

我想将"C:\Users\<user>\AppData\Local\Microsoft\Edge"作为"userDataFolder"的参数传递给CreateCoreWebView2EnvironmentWithOptions(),因为此位置是浏览器数据的存储位置。

我不希望我的应用程序数据位于我的应用程序文件夹中。

如何从应用程序内部获取Edge浏览器的用户数据位置?我可以为此读取注册表值吗?

解决方法

您不应将Edge浏览器的用户数据文件夹用作WebView2实例的用户数据文件夹。

最终用户不会期望其他应用在其浏览器中更改状态。另外,由于铬的体系结构,共享用户数据文件夹也意味着共享浏览器进程和相关进程。 Edge浏览器并非旨在支持此功能,而是假定它可以控制其进程的生存期。 WebView2似乎无缘无故地关闭了其进程。对于使用浏览器的最终用户也是如此。

此外,如果您尝试使用由多个应用程序共享的文件夹,并且它们之间没有协调,则不会将您的数据与其他应用程序的数据分开,因此在卸载应用程序时无法清理您的数据。

在某种程度上有助于防止这种情况的发生,用户数据文件夹参数中指定的路径不是WebView2用于存储数据的直接路径。 WebView2在此下方使用一个文件夹,因此您无法选择浏览器的用户数据文件夹。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...