0

C# が WebView から情報を抽出したり、イベントに反応したりするには、InvokeScript を使用します。ただし、InvokeScript はイベントにアタッチするプロパティがないようです。どうしたの?

private void WebView_LoadCompleted(object sender, NavigationEventArgs e)
{
    var _WebView = sender as WebView;
    _WebView.AllowedScriptNotifyUris = WebView.AnyScriptNotifyUri;
    _WebView.AllowedScriptNotifyUris.Add(e.Uri);

    // test1 fires immediately
    _WebView.InvokeScript("execScript", new[] { "window.external.notify('test1'); " });

    // test2 never fires
    _WebView.InvokeScript("execScript", new[] { "document.addEventListener = function (e) { window.external.notify('test2'); }" });

    // test3 never fires
    _WebView.InvokeScript("execScript", new[] { "function x(e) { window.external.notify('test3'); } document.addEventListener('onmousedown', x);" });

}

private void WebView_ScriptNotify(object sender, NotifyEventArgs e)
{
    // listen for external.notify event
    System.Diagnostics.Debugger.Break();
}
4

0 に答える 0