2

現在、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 をアプリケーションに統合することを強く考えています。

どうも

4

1 に答える 1