Я создаю приложение на Windows Phone 7, которое позволяет пользователям читать офлайн-контент HTML. Есть ли способ показать встроенный браузер или контроль HTML-просмотра?
Как я могу позволить пользователю просматривать содержимое HTML/WebSite без запуска браузера (нужен встроенный браузер)?
Ответ 1
Элемент WebBrowser
позволяет отображать произвольный HTML.
В элементе управления WebBrowser
есть два метода для отображения HTML:
-
Navigate()
отобразит содержимое файла, расположенного по указанному URL-адресу. Этот файл может находиться вIsolatedStorage
или на сервере. -
NavigateToString()
отобразит строку html, которую вы даете ей.
В вашем случае я предполагаю, что вы использовали бы объект WebClient
для загрузки веб-страницы в автономное хранилище, а затем для метода Navigate
.
Тем не менее, преимущество NavigateToString
заключается в том, что вы можете подтолкнуть строку к тому, чтобы сделать некоторые интересные (или необходимые) вещи, такие как стиль страницы, чтобы она идеально соответствовала текущей теме телефона или улавливала все клики по ссылкам и заставить их появляться во внешнем браузере (в противном случае они загружаются в тот же самый элемент управления WebBrowser
).
Я документировал детали стиля и ссылки на клики здесь.
Ответ 2
Да, есть элемент управления WebBrowser
в Microsoft.Phone.Controls
Если вы затем сохраните свои (автономные) файлы на IsolatedStorage
, вы можете просмотреть файл через вызов, подобный этому из кода:
webBrowser1.Navigate(new Uri("offline-file-name.html", UriKind.Relative));
Примечания:
-
Вы можете использовать каталоги в изолированном хранилище. Просто укажите весь путь в Uri.
-
При перемещении между автономными страницами все пути должны быть относительными.