public async Task PreloadUsesWebViewFromCache() { var webviewInstantiatedTaskCompletionSource = new TaskCompletionSource <bool>(); void OnWebViewInitialized(WebView webview) { webviewInstantiatedTaskCompletionSource.TrySetResult(true); } try { WebView.GlobalWebViewInitialized += OnWebViewInitialized; await Run(async() => { using var newView = new TestReactViewWithPreload(); newView.Load(); var currentTime = await TargetView.EvaluateMethod <double>("getCurrentTime"); // wait for the cached webview to be instantiated await webviewInstantiatedTaskCompletionSource.Task; using var newView2 = new TestReactViewWithPreload(); newView2.Load(); var startTime = await newView2.EvaluateMethod <double>("getStartTime"); Assert.LessOrEqual(startTime, currentTime, "The second webview should have been loaded before!"); }); } finally { WebView.GlobalWebViewInitialized -= OnWebViewInitialized; } }
public async Task PreloadLoadsComponent() { await Run(async() => { using var newView = new TestReactViewWithPreload(); newView.Load(); var ready = await newView.AwaitReady(); Assert.IsTrue(ready, "Second view was not properly loaded!"); }); }