Windows商店应用程序 - 您好我的xaml页面中有webView。这个webview显示页面上的一些http地址。在加载的页面很容易登录,我需要用户在我的应用程序中按登录按钮通知。有什么选择吗?
html部分:<input type="submit" value="Login me" id="login">
我发现这样的事情:webView1.Document.GetElementById("").InvokeMember("click");
但不在RT / W8
答案 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
}
}