2016-11-30 107 views
0

我們是否有一種方法來讀取加載到Xamarin Forms WebView中的HTML?從WebView中讀取HTML - Xamarin Forms

我已經將URL加載到一個Xamarin表單WebView中,並且現在該URL在webview上發生變化,並且我希望在發生重定向時找到一個頁面。我需要閱讀html內容(字符串)和web瀏覽器中加載的html,並找到期望的頁面。

問題:我正在爲用戶打開登錄頁面。用戶添加憑證並點擊登錄按鈕。如果憑證有效,則會從登錄頁面重定向到具有相同URL的其他中間頁面,但情況會有所不同。第一次用戶登錄時,它顯示授權頁面和接受按鈕。一旦用戶點擊按鈕,用戶移動到預期的最終頁面。如果用戶第一次登錄後,中間頁面將爲空,並在一段時間後進入最終預期頁面。

我需要找到一個邏輯來檢測中間頁面有授權信息或有空白頁面。我無法使用URL識別它,因爲中間頁面具有相同的URL。所以,想到閱讀頁面的HTML內容。我怎麼做?

我將iOS,Android和Windows作爲跨平臺的Xamarin表單應用程序。

回答

1

您可以將軟件包System.Net.Http安裝到您的PCL中,並以這種方式獲取頁面的HTML內容。

HttpClient hpClient = new HttpClient(); 
HttpResponseMessage requestMessage = await hpClient.GetAsync("http://google.com"); 
string HTMLContent = await requestMessage.Content.ReadAsStringAsync(); 

注:要安裝System.Net.Http包你將需要雙擊你的PCL解決方案,轉到常規>當前配置文件並將其更改爲PCL 4.5 - 簡介111

+0

我已更新我的問題。請檢查它。我將通過重定向進入網頁,因此上述解決方案無法幫助我。 –

+0

這就像一個魅力。非常感謝!! – DocAsh59

0

我會仍然認爲你可以怎樣做你所需要的,但這裏是你可以使用的一種方法。

訂閱導航事件。在它內部,WebNavigatedEventArgs參數具有指向Url的UrlWebViewSource成員Source。你可以從中讀取。

另一個選項是檢查CanGoBack。如果是重定向這個成員應該是真實的。

要閱讀您需要實現自定義渲染器的頁面內容。

+0

我已經在做這個。請在這裏建議。 –

+0

如果您提供樣本解決方案,我可能會提供更多幫助。 –