Ich erstelle eine Anwendung für Windows Phone 7, mit der man HTML-Inhalte offline lesen kann. Gibt es eine Möglichkeit, einen Inline-Browser oder ein HTML-Anzeigeelement anzuzeigen?
Antworten
Zu viele Anzeigen?Die WebBrowser
Steuerelement können Sie beliebiges HTML anzeigen.
Es gibt zwei Methoden auf der Website WebBrowser
Steuerelement, das Sie zur Anzeige von HTML verwenden können:
Navigate()
zeigt den Inhalt einer Datei an, die sich unter der angegebenen URL befindet. Diese Datei kann inIsolatedStorage
oder auf einem Server.NavigateToString()
wird die von Ihnen angegebene HTML-Zeichenkette anzeigen.
In Ihrem Fall würde ich vermuten, dass Sie eine WebClient
Objekt, um die Webseite in den Offline-Speicher herunterzuladen, dann wird das Navigate
Methode, um sie anzuzeigen.
Allerdings ist der Nutzen von NavigateToString
ist, dass man die Zeichenkette auf dem Weg dorthin zurechtstutzen kann, um einige coole (oder essentielle) Dinge zu tun, wie z.B. die Seite so zu gestalten, dass sie perfekt mit dem aktuellen Telefonthema übereinstimmt, oder alle Link-Klicks abzufangen und sie im externen Browser aufpoppen zu lassen (andernfalls werden sie im selben WebBrowser
Kontrolle).
Ich habe die Details des Stylings und der Link-Klickerei dokumentiert aquí .
Ja, es gibt eine WebBrowser
Kontrolle in Microsoft.Phone.Controls
Wenn Sie dann Ihre (Offline-)Dateien in IsolatedStorage
können Sie die Datei dann über einen Aufruf wie diesen aus dem Code heraus anzeigen:
webBrowser1.Navigate(new Uri("offline-file-name.html", UriKind.Relative));
Zu beachtende Punkte:
-
Sie können Verzeichnisse innerhalb eines isolierten Speichers verwenden. Geben Sie einfach den gesamten Pfad in der Uri an.
-
Wenn Sie zwischen Offline-Seiten navigieren, müssen alle Pfade relativ sein.