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 回答