如果我想执行这个方法:
private async void GetSessionIdFromWebView()
{
sessionId = await webViewer.EvaluateJavaScriptAsync("MauiAppInterface.GetSessionId();");
}
我遇到了这个异常:
System.InvalidOperationException:“在意外的时间调用了一个方法。
ExecuteScriptAsync():失败,因为不存在有效的 CoreWebView2。确保已创建一个,例如通过调用 EnsureCoreWebView2Async() API。”
我使用普通的 WebView,而不是 Webview2。
<WebView x:Name="webViewer" />
另外,执行上述方法时,webview不为null。
在 android 和 ios 上它只能在 Windows 中正常工作,我得到了这个异常。
有人知道问题是什么吗?
System.InvalidOperationException:“在意外的时间调用了一个方法。
ExecuteScriptAsync():失败,因为没有有效的 CoreWebView2 展示。确保已创建一个,例如通过调用 EnsureCoreWebView2Async() API。”
关于这个错误,我重现了。只要声明
Source
(只是不要使其为空),就可以避免此错误,如下所示:
<WebView x:Name="webViewer" Source=""/>
or
<WebView x:Name="webViewer" Source="https://stackoverflow.com/questions/77700709"/>
顺便说一句,WebView2 是 Windows 平台,对于 Android 来说是 Android.Webkit.WebView,ios 是 WKWebView。它们都是特定平台中的特定事物。