現在、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");
到達することはありません。出力コンソールでは、その行で (段階的にデバッグ中に) 3 つの例外が発生しました。
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).
WebView を作成し、それを Windows 8 (Windows Phone 8 ではない) の C++ のみのアプリケーションで表示する方法を知っていれば、それは素晴らしいことです。一方、C++ のみで webkit webview を表示するのに役立つ場合は、webkit をアプリケーションに統合することを強く考えています。
どうも