在webView中通知单击操作按钮

时间:2013-09-14 07:44:48

标签: c# windows-8 webview onclick windows-store-apps

Windows商店应用程序 - 您好我的xaml页面中有webView。这个webview显示页面上的一些http地址。在加载的页面很容易登录,我需要用户在我的应用程序中按登录按钮通知。有什么选择吗?

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

我发现这样的事情:webView1.Document.GetElementById("").InvokeMember("click");但不在RT / W8

1 个答案:

答案 0 :(得分: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
        }
    }