我正在使用c#创建一个UWP应用程序。该应用程序应该从网站获取信息并将其呈现给用户。我已经浏览了网站的DOM并设法下载该网站的HTML。但有些信息是隐藏的,只有在网站上进行某些按钮或选择时才会出现。有没有办法,我可以编程进入网站,做出选择,下载新的HTML?
第二个问题:应用程序应该有一个fb liveChat函数链接到一个fb页面。如何将facebook liveChat链接到这个应用程序?我对如何使这项工作没有任何想法。谢谢你的帮助。
答案 0 :(得分:2)
以下是在搜索框中输入文字和在Bing中单击搜索按钮的示例
使用WebView完成所有工作
WebView webView = new WebView();
使用WebView的InvokeScriptAsync
方法使用JS代码
webView.InvokeScriptAsync("eval", new string[] {});
使用以下代码
获取网站的HTMLpublic LoadURI()
{
webView.Navigate(new Uri("https://www.bing.com/"));
webView.NavigationCompleted += webView_NavigationCompletedAsync;
}
string siteHtML = null;
private async void webView_NavigationCompletedAsync(WebView sender, WebViewNavigationCompletedEventArgs args)
{
siteHtML = await webView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });
}
输入文字
private async void EnterTextAsync(string enterText)
{
var functionString = string.Format(@"document.getElementsByClassName('b_searchbox')[0].innerText = '{0}';", enterText);
await webView.InvokeScriptAsync("eval", new string[] { functionString });
}
使用以下代码
模拟点击private async void SimulateClickAsync()
{
var functionString = string.Format(@"ddocument.getElementsByClassName('b_searchboxSubmit')[0].click();");
await webView.InvokeScriptAsync("eval", new string[] { functionString });
}
以下是LogIn到StackOverflow的示例应用:StackOverFlow-LogIn