Maui.net ExecuteScriptAsync():失败,因为不存在有效的 CoreWebView2

问题描述 投票:0回答:1

如果我想执行这个方法:

    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 中正常工作,我得到了这个异常。

有人知道问题是什么吗?

javascript windows exception maui invalidoperationexception
1个回答
0
投票

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。它们都是特定平台中的特定事物。

© www.soinside.com 2019 - 2024. All rights reserved.