Navigieren Sie zu etwa: leer < /code> < /li>
Navigieren Sie zu der generierten HTML -Datei < /li>
< /ol>
Dieser Ansatz hat für die letzten zwei Jahre gut funktioniert. In einigen jüngsten Setups haben wir jedoch festgestellt, dass beide Navigationen (bis etwa: leer und die Datei -URL) fast gleichzeitig auftreten. Infolgedessen wird die Navigation zur tatsächlichen Datei -URL abgebrochen, während die Navigation zu etwa: Blank erfolgreich ist.
Code: Select all
private void NavigateToBlankThenFileAsync()
{
webView2.CoreWebView2.Navigate("about:blank");
var fileUrl = GetHTMLDataAndWriteItIntoFile();
webView2.CoreWebView2.Navigate(fileUrl);
}
Code: Select all
private TaskCompletionSource navigationCompletedTask;
// Call this function when you want to trigger navigation
private async Task NavigateToBlankThenFileAsync()
{
navigationCompletedTask = new TaskCompletionSource();
// Navigate to about:blank
webView2.CoreWebView2.Navigate("about:blank");
// Await navigation to about:blank before proceeding
await navigationCompletedTask.Task;
var fileUrl = GetHTMLDataAndWriteItIntoFile();
// Now safe to navigate to actual file URL
webView2.CoreWebView2.Navigate(fileUrl);
}
// Event handler for navigation completed
private void WebView2_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventArgs e)
{
var uri = webView2.Source?.ToString();
if (uri == "about:blank" && navigationCompletedTask != null)
{
navigationCompletedTask.SetResult(true);
navigationCompletedTask = null;
}
}
Vorschläge oder Feedback zu dieser>