2015-04-15 1 views
3

Я делаю приложение Windows Phone, которое я могу, Из веб-профайла под названием «DebWeb» получить ClassRoom определенного класса. DebWeb загружает сайт, на котором все классные классы, но я хочу сделать этот поиск в приложении только моим классом.Получить исходный код из Webview (VB for Metro)

Прежде чем я сделал приложение с почти такой же задачей (поиск имени приложения из исходного кода), но он был сделан из VB для ПК, теперь я работаю над VB для Metro (или для App Store), и я не могу использовать тот же код.

Например, на VB для ПК можно использовать:

Dim EHTML = DebWeb.Document.All.Item(1) 
Dim sourceString As String = EHTML.InnerHtml 
'Use Regex Match to search from SourceString" 

Но на VB для Metro это показывает мне "„Документ“не является членом«Windows.UI.XAML.Controls.WebView '", поэтому я не могу получить исходный код со страницы, и я не могу найти ClassRoom.

Я просмотрел страницу MSDN о веб-просмотре, но самое близкое, что я могу сделать, это получить «DocumentTittle», но не контент.

Это мой код, все "работает", за исключением "Источник" переменный:

Dim Source = DebWeb.[Control] 'Here is where I need the Control to get the SourceCode 
    Dim m As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(Source.ToString, _ 
    "DERECHO CONSTITUCIONAL", _ 
    System.Text.RegularExpressions.RegexOptions.IgnoreCase) 

Edited с моим Всем кодом:

Private Sub MainPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded 

    Dim URL As String = "http://goo.gl/uqohKw" 
    Me.DebWeb.Navigate(New Uri(URL)) 
End Sub 

Private Sub DebWeb_LoadCompleted(ByVal sender As Object, ByVal e As WebViewNavigationCompletedEventArgs) 
    LListo.Text = "Listo!" 
    Dim html As String = DebWeb.InvokeScriptAsync("eval", New String() {"document.documentElement.outerHTML;"}).ToString 
    Dim Source = html 
    Dim m As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(Source.ToString, _ 
    "LECTURA CRÍTICA", _ 
    System.Text.RegularExpressions.RegexOptions.IgnoreCase) 
    If (m.Success) Then 
     Dim key As String = m.Groups(1).Value 

    End If 
End Sub 
+0

Проверьте это: http://stackoverflow.com/questions/26347363/how-to-get-a-content-from-windows-phone-webview-control – TheCoolFrood

+0

Спасибо но я попробовал это раньше, я получаю сообщение об ошибке «новая строка []» («Идентификатор ожидается») и «Regex.Match (Источник» (источник не объявлен, что ...), может быть, потому что это код C# и я «Я работаю над VB (обратите внимание, что я все еще Sudying VB, я ничего не знаю из C#) –

+0

Возможно, измените' New String [] 'на' New String() ' – TheCoolFrood

ответ

1

Что-то вроде этого?

Private Sub Button_Click(sender As Object, e As RoutedEventArgs) 
    Try 
     Dim html As String = Await myWebView.InvokeScriptAsync("eval", New String() {"document.documentElement.outerHTML;"}) 
    Catch ex As Exception 
    End Try 
End Sub 

Подробнее here

+0

Если MyTextBlock.Text показывает исходный код (HTML) из X webPage, то да, но, я получаю это на «source Variable»: {Wind ows.Foundation.IAsyncOperation (Of String)} и Match не удалось найти «Derecho constitucional» (классная комната) –

+0

Вместо использования 'Dim Source = DebWeb. [Control]' use 'Dim Source = html' – TheCoolFrood

+0

Пробовал но «Await» Может использоваться только в том случае, если он содержится в методе или лямбда-выражении, помеченном «модификатором Async». Если я удалю Await, Source и html теперь будут «System .__ ComObject» –