以下是如何模拟登录按钮上的单击操作:
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
}
}