CoreWebView2.AddHostObjectToScript 拋出 System.Exception:“組或資源未處于執行請求操作的正確狀態。” 版本 SDK:1.0.1245.22 最新穩定版 -(和 Microsoft.UI.Xaml 2.8.0-prerelease.210927001)運行時:框架:UWP 作業系統:Windows 11,內部版本 22000
重現步驟
- 創建 UWP 專案
- 添加必要的 nuget 包(Microsoft.Web.Webview2 最新穩定版本和 Microsoft.UI.Xaml 2.8.0-prerelease)
- 將 WebView2 組件添加到 MainPage.xaml
- 使用必要的標簽創建 HostObject 類
- 在 WebView2 (MainPage.xaml.cs) 中添加導航開始或導航完成方法的代碼
- 通過呼叫 myWebView.EnsureCoreWebView2Async(); 確保 CoreWebView2 不為空;內部方法
- 嘗試使用 myWebView.CoreWebView2.AddHostObjectToScript("HostObject", hostObject); inside 方法(還嘗試創建一個新專案 uwp(作為 Windows 運行時組件)并在那里創建 HostObject 類但仍然存在相同的例外。此外嘗試更改 HostObject 類上的標簽但仍然存在相同的問題)
HostObject 類的示例:
[AllowForWeb]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class JsCallbacksUwp
{
public JsCallbacksUwp()
{
}
}
引發例外的 Navigation Completed 示例代碼:
private async void WebView2_NavigationCompleted(WebView2 sender, CoreWebView2NavigationCompletedEventArgs args)
{
await sender.EnsureCoreWebView2Async();
var browserHostObject = new JSCallbacksUwp();
sender.CoreWebView2.AddHostObjectToScript("HostObject", browserHostObject);
}

uj5u.com熱心網友回復:
我從 github 社區的WebView2 反饋中得到了答案
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/495011.html
上一篇:android.content.res.Resources$NotFoundException:可繪制的compat_splash_screen_no_icon_background資源ID#0x7f
