none
Webbrowser Control Probleme RRS feed

  • Frage

  • Hallo.

    Ich entwickle gerade wine Windows Phone 8 App mit C# und Xaml.
    Auf einer Seite stelle ich mehrere HTML Inhalte mit diversen Webbrowser Controls dar.
    Die einzelnen Controls werden code sietig in einem Stackpanel dargestellt.
    Aktuell habe ich mehrere Probleme mit dem Webbrowser Control:

    - Ich setze den Inhalt über navigateToString, da ich diesen über einen Webservice erhalte. Das HTML beinhaltet ein JS, welches die Inhaltshöhe ermittelt und über die  notifyScript Callsback wird dann die höhe des entsprechenden Webbrowser Control gesetzt.
    Das funktioniert, allerdings haben dann ALLE Controls diesselbe höhe, obwohl nur ein bestimmtes bearbeitet wird.
    - Ich habe hier auch ein eigenes Protokoll registriert um diese Links mit meiner App zu verknüpfen. Dies funktioniert auch mit Links innerhalb des Webbrowser Controls, solange ich den Inhalt über eine URL bzw. aus einem File lese.
    Setze ich den Inhalt jedoch über die navigateToString Methode, werden diese Links ignoriert. Beim klick auf solch einen Link passiert garnichts
    - Kann ich den HTML Inhalt eines Webbrowser Controls niergends auslesen?
    - Ist es möglich das Scrolling eines Webbrowser Controls zu deaktivieren, sodass das Scrolling des umschliessenden ScrolPanel funktioniert?

    Gruß und Danke,
    Mike.
    Donnerstag, 18. Juli 2013 14:07

Alle Antworten

  • Hi,

    Auslesen von HTML: Das sollte mit WebBrowser.SaveToString gehen.

    Scrolling deaktivieren: Ja, das geht am besten direkt im HTML mit dem folgenden Metatag: <meta name="viewport" content="width=320,user-scalable=no" />, in welchem auch die Breite festgelegt ist. Das geht übrigens auch für die Höhe.

    Mich würde allerdings interessieren, wieso du einen solchen Ansatz gewählt hast. Die Performance der App wird wahrscheinlich nicht so gut sein. Wieso also der Umweg via HTML, wenn du doch bereits einen WebService im Hintergrund hast?

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.

    Freitag, 19. Juli 2013 05:48
  • Hallo Peter.

    Schon einmal vielen Dank für die unkomplizierte Hilfe!!!

    Der Server bietet sozusagen ein CMS in dem der Admin diverse inhalte pflegen kann.
    Unter anderem Bilder, Dokument und eben HTML Content. Der HTML Content wird 
    jeweils als HTML Snippet ausgewählt und die App soll verschiedene Content Type (HTML, Bilder etc.)

    auf einer Seite entsprechend Sortiert dargesetellt werden. Der Webservice liefert diese diversen Contentblöcke

    in einem Response als JSON String. Nun muss die App diese einzelnen JSON Objekte zerpflücken und darstellen.
    Deshalb auch der Ansatz mit den Webbrowser Controls...

    Freitag, 19. Juli 2013 06:55
  • Hi,

    ich würde in dem Fall wahrscheinlich dann die Webbrowser-Steuerelement besser auf mehrere einzelne Seiten verteilen, anstatt sie gesammelt auf einer XAML-Page darzustellen. Das sollte den Speicherverbrauch wahrscheinlich senken.

    Alternative 2: Verwende nur ein Webbrowser-Steuerelement und lade den Inhalt dynamisch nach. Mit clientseitigem Caching sollte die Anwendung dann performant sein und den Hauptspeicher wenig belasten.

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.

    Freitag, 19. Juli 2013 06:59
  • Hallo Peter.

    Ich denke da muss ich mir wohl wirklich noch eine alternative überlegen...

    Übrigens scrolling ausschalten mit dem meta tag funktioniert leider nicht, der zoom hingegen schon...

    Gruß und Danke!

    Freitag, 19. Juli 2013 09:08