我正在使用c#創建一個UWP應用程序。該應用程序應該從網站獲取信息並將其呈現給用戶。我瀏覽了網站的DOM並設法下載了該網站的HTML。但是其中一些信息是隱藏的,只有在網站上有某些按鈕或選擇時纔會顯示。有沒有一種方法可以以編程方式進入網站,進行選擇,下載新的HTML?以編程方式從手機中的應用程序中按一個按鈕
第二個問題:應用程序應該有一個fb liveChat函數鏈接到一個fb頁面。我如何將facebook liveChat鏈接到這個應用程序?我不知道如何完成這項工作。謝謝你的幫助。
我正在使用c#創建一個UWP應用程序。該應用程序應該從網站獲取信息並將其呈現給用戶。我瀏覽了網站的DOM並設法下載了該網站的HTML。但是其中一些信息是隱藏的,只有在網站上有某些按鈕或選擇時纔會顯示。有沒有一種方法可以以編程方式進入網站,進行選擇,下載新的HTML?以編程方式從手機中的應用程序中按一個按鈕
第二個問題:應用程序應該有一個fb liveChat函數鏈接到一個fb頁面。我如何將facebook liveChat鏈接到這個應用程序?我不知道如何完成這項工作。謝謝你的幫助。
這裏是在Bing
使用WebView在搜索框中輸入文字,然後點擊搜索按鈕,完成所有的工作
WebView webView = new WebView();
使用InvokeScriptAsync
方法的WebView到使用的實例JS代碼
webView.InvokeScriptAsync("eval", new string[] {});
使用下面的代碼
public 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;" });
}
使用下面的代碼輸入搜索框中的文本獲取HTML網站的
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 });
}
這裏是登錄時的示例應用程序,以獲取StackOverflow的新網站的HTML:StackOverFlow-LogIn
非常感謝@Vijay。這看起來像我想要的。讓我嘗試一下。 – Zee
這是您的代碼的輸出:_A'類型'System.Exception異常發生在mscorlib.ni.dll中,但未在用戶代碼中處理 其他信息:異常來自HRESULT:0x80020101_。這兩個調用方法都會與該異常一起崩潰。 – Zee
@Zee我的電腦有一些網絡問題,所以我無法測試它。嘗試使用WebView作爲XAML元素並檢查'webView.Navigate'是否工作。如果它工作,然後使用'Button' Click事件來測試'webView.InvokeScriptAsync(「eval」,new string [] {「document.documentElement.outerHTML;」});'code。 –
你就不能直接調用後端?這個解決方案可能非常棘手。 – Stefan
另一個想法 - 我知道我沒有幫助 - 但最好將您的第二個問題作爲單獨的問題發佈。在這個問題中,請張貼您自己嘗試過的相關代碼部分。 – Stefan
感謝@Stefan的回覆,我會這麼做的。我沒有真正嘗試過任何方法,我已經四處搜尋,但無法找到任何可能的原因,我不知道我在找什麼。 – Zee