Веб-браузер не загружает мою страницу

#c# #silverlight #windows-phone-7

#c# #серебристый свет #windows-phone-7 #silverlight

Вопрос:

У меня есть элемент WebBrowser в моем пользовательском интерфейсе, я могу заставить его перейти на размещенную страницу, но когда я хочу, чтобы он загрузил локальную веб-страницу (которая находится в моих ресурсах решения), которая является точным HTML-файлом, размещенным в Интернете, он просто показывает пустую страницу.

 browser.Navigate(new Uri("test.html", UriKind.Relative));
  

Если я изменяю UriKind или название страницы, отображается сообщение об ошибке, что файл не найден, поэтому я знаю, что браузер правильно находит веб-страницу, но он не будет ее отображать.

Мне нужно это сделать, потому что я хочу показывать страницу, пока пользователь находится в автономном режиме.

Ответ №1:

Если у html-файла есть действие сборки Content , вы можете получить к нему доступ непосредственно из места установки, если зададите относительный путь.

Если вы хотите иметь возможность перемещаться между страницами или включать другие ресурсы в файл (включая внешние css, js или даже изображения), то вам нужно либо скопировать все файлы в IsolatedStorage и просматривать их оттуда, либо разместить их снаружи.

Редактировать:
В MSDN есть статья, в которой объясняется копирование файлов в IsolatedStorage, чтобы их можно было просмотреть в элементе управления WebBrowser по адресуhttp://msdn.microsoft.com/en-us/library/ff431811 (v =против92).aspx

Комментарии:

1. Мне действительно нужны JS и изображения, но не навигация, поскольку это просто HTML со всем необходимым мне контентом (более 100 изображений), как мне следует выполнить процедуру IsolatedStorage? (копирование и доступ), спасибо

Ответ №2:

Браузер не может прочитать ресурс из вашего приложения / Dll. Однако, если у вас есть файл в той же папке, что и ваше приложение, вы могли бы сделать:

  var home = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
 browser.Navigate(new Uri("file://"   home   "/test.html");
  

Комментарии:

1. Я получаю «System. Исключение MethodAccessException «когда система создает переменную home: Дополнительная информация: Попытка доступа к методу не удалась: System. Отражение. Сборка. getName()

2. Это звучит как ограничение безопасности на Windows Phone 7. Я никогда не использовал эту plantform. Надеюсь, кто-нибудь там просветит нас.

3. WP7 не поддерживает протокол «file: //»