1

Windows ストア アプリ - こんにちは、xaml ページに webView があります。この webview は、いくつかの http アドレスのページを表示します。ロードされたページでは、ログインのための簡単なフォーミュラーであり、ユーザーがログインボタンを押したときにアプリで通知する必要があります。オプションはありますか?

html 部分:<input type="submit" value="Login me" id="login">

私はこのようなものを見つけました:webView1.Document.GetElementById("").InvokeMember("click");しかし、RT/W8にはありません

4

1 に答える 1

2

ログインボタンのクリックアクションをシミュレートする方法は次のとおりです。

webView.InvokeScript("eval", new[] { "document.getElementById(\"login\").click();" });

ボタンがクリックされたときに通知を受け取りたい場合のコードは次のとおりです。 LoadComplete に登録し、次のコードを使用してクリック ハンドラを追加します。

private void WebView_OnLoadCompleted(object sender, NavigationEventArgs e)
    {

        webView.InvokeScript("eval", new[]
        {
            "var loginButon=document.getElementById(\"login\");" +
            "if (loginButon.addEventListener) {" +
                "loginButon.addEventListener(\"click\", clickFunction, false);" +
            "} else {" +
                "loginButon.attachEvent('onclick', clickFunction);" +
            "}  " +
            "function clickFunction(){" +
                " window.external.notify('loginClick');"+
             "}"
        });

    }

ページ コンストラクターで Web ビュー通知を有効にするには、作業中のページの URI を指定するか、すべての URI を有効にすることができます。

webView.AllowedScriptNotifyUris = WebView.AnyScriptNotifyUri;

最後に ScriptNotify イベントに登録し、次のハンドラを使用します。

private void WebView_OnScriptNotify(object sender, NotifyEventArgs e)
    {
        if (e.Value == "loginClick")
        {
            //Login button have been clicked
        }
    }
于 2013-09-14T12:37:40.220 に答える