0

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

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

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

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

4

1 回答 1

1

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

最终用户不会期望其他应用程序在他们的浏览器中改变状态。另外由于 Chromium 的架构,共享一个用户数据文件夹也意味着共享一个浏览器进程和相关进程。Edge 浏览器并非旨在支持这一点,并假定它可以控制其进程的生命周期。WebView2 可能会无缘无故地关闭其进程。对于使用浏览器的最终用户也是如此。

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

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

于 2020-10-21T00:18:37.577 回答