2016-11-30 19 views
0

Haben wir eine Möglichkeit, HTML in Xamarin Forms WebView geladen zu lesen?HTML von WebView lesen - Xamarin Forms

Ich habe URL in eine Xamarin Forms WebView geladen und jetzt diese URL ändert sich auf Webview und ich möchte eine Seite finden, wenn es eine Umleitung ist. Ich muss HTML-Inhalt (in der Schnur) und von geladenem HTML in der Netzansicht lesen und erwartete Seite finden.

Problem: Ich öffne eine Login-Seite für Benutzer. Der Benutzer fügt Anmeldeinformationen hinzu und klickt auf die Schaltfläche "Anmelden". Wenn die Anmeldeinformationen gültig sind, würde eine Umleitung von der Anmeldeseite zu einer anderen Zwischenseite mit derselben URL erfolgen, die sich jedoch je nach Situation unterscheidet. Der Erstbenutzer meldet sich an, er zeigt die Autorisierungsseite mit der Schaltfläche Akzeptieren an. Sobald der Benutzer auf die Schaltfläche klickt, bewegt sich der Benutzer zur erwarteten letzten Seite. Wenn der Benutzer sich nach dem ersten Mal anmeldet, ist die Zwischenseite leer und nach einiger Zeit wird die endgültige Seite angezeigt.

Ich muss eine Logik finden, die erkennt, dass Zwischenseite Autorisierungsinformationen hat oder eine leere Seite hat. Ich kann es nicht mithilfe der URL identifizieren, da die Zwischenseite für beide Szenarien die gleiche URL aufweist. Also, über das Lesen des HTML-Inhalts der Seite nachzudenken. Wie mache ich das?

Ich ziele auf iOS, Android und Windows als plattformübergreifende Xamarin-Formulare Anwendung.

Antwort

1

Sie können das Paket System.Net.Http in Ihrem PCL installieren und den HTML-Inhalt der Seite auf diese Weise abrufen.

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

Hinweis: Um das System.Net.Http-Paket installieren Sie Ihre PCL-Lösung klicken müssen verdoppeln, PCL auf 4,5 Zur Allgemein> Aktuelles Profil und ändern - Profil 111.

+0

Ich habe meine Frage aktualisiert. Bitte überprüfen sie es. Ich gehe zur Webseite durch Umleitung, so dass die obige Lösung mir nicht helfen konnte. –

+0

Das funktioniert wie ein Zauber. Ich danke dir sehr!! – DocAsh59

0

würde ich Denken Sie immer noch daran, wie Sie sonst tun können, was Sie brauchen, aber hier ist eine der Methoden, die Sie verwenden können.

Melden Sie sich für Navigated-Ereignis an. Der Parameter WebNavigatedEventArgs enthält das URLWebViewSource-Element Quelle, das auf URL verweist. Sie können daraus lesen.

Eine andere Möglichkeit ist, CanGoBack zu überprüfen. Wenn es umgeleitet wurde, sollte dieses Mitglied wahr sein.

Um den Inhalt der Seite zu lesen, müssen Sie einen benutzerdefinierten Renderer implementieren.

+0

Ich mache das schon. Bitte schlagen Sie hier vor. –

+0

Wenn Sie Beispiellösung zur Verfügung stellen, kann ich vielleicht mehr helfen. –