我目前正在尝试在 WinRT 应用程序(没有 c#)中显示 webview。首先,可能吗?
我目前正在尝试这样做:
Windows::UI::Xaml::Controls::WebView^ webView = ref new Windows::UI::Xaml::Controls::WebView();
webView->NavigateToString("http://www.google.com");
但是因为我希望这段代码在主线程中运行(我认为,创建一个 UI 元素是强制性的),所以我运行它是这样的:
Windows::ApplicationModel::Core::CoreApplication::MainView->CoreWindow->GetForCurrentThread()->Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::Normal, ref new Windows::UI::Core::DispatchedHandler(
[]
{
Windows::UI::Xaml::Controls::WebView^ webView = ref new Windows::UI::Xaml::Controls::WebView();
webView->NavigateToString("http://www.google.com");
}
));
不好的一点是这一行:
webView->NavigateToString("http://www.google.com");
永远达不到。在输出控制台中,我在该行引发了三个异常(在逐步调试时):
Windows::UI::Xaml::Controls::WebView^ webView = ref new Windows::UI::Xaml::Controls::WebView();
引发的异常如下:
First-chance exception at 0x763B4B32 in Direct3DApp1.exe: Microsoft C++ exception: Platform::WrongThreadException ^ at memory location 0x0320EFE4. HRESULT:0x8001010E
First-chance exception at 0x763B4B32 in Direct3DApp1.exe: Microsoft C++ exception: Platform::WrongThreadException ^ at memory location 0x0320EFE4. HRESULT:0x8001010E
First-chance exception at 0x763B4B32 (KernelBase.dll) in Direct3DApp1.exe: 0x40080201: WinRT originate error (parameters: 0x8001010E, 0x00000051, 0x0320E494).
如果您知道如何在 Windows 8(不是 Windows Phone 8)上创建 webview 并将其显示在仅限 C++ 的应用程序中,那就太好了。同时,我强烈考虑将 webkit 集成到我的应用程序中,如果它可以帮助我仅在 C++ 中显示 webkit webview。
谢谢