locked
Webview + локальный .htm файл RRS feed

  • Вопрос

  • Всем привет)

    Не могу загрузить в WebView страницу сохраненную на компьютере, я положил ее в папку Assets и пытаюсь указать ее через атрибут Source:

     <WebView Name="WebView1" HorizontalAlignment="Left" Height="768" VerticalAlignment="Bottom"  Width="1366" Source="Assets/1.html"/>

    Но оно не работает(

    Вы не могли бы привести вариант корректной разметки?

    Вообще мне это нужно для того чтобы отображать на странице математические формулы, сохраненные в .doc файле, я сохранил .doc как .htm чтобы использовать компонент Webview для просмотра,  это может быть не самое удачно решение?


    • Изменено pRooTq 28 ноября 2012 г. 5:47 форматирование
    28 ноября 2012 г. 5:46

Ответы

  • О, совсем недавно по такому принципу делал локализированный хелп в программе с использованием WebView. Скину Вам кусок кода.

    1. открытии страницы  
    mainWebView.Navigate(new Uri("ms-appx-web:///Resources/HelpPages/_index.html", UriKind.Absolute));

    2. подписка на события страницы (см ниже зачем)
     mainWebView.ScriptNotify += (sender, args) =>
                {
                    subWebView.Navigate(new Uri(String.Format("ms-appx-web:///Resources/HelpPages/{0}", args.Value), UriKind.Absolute));
                };
    У меня два контрола, в левый я вывожу список разделов хелпа, в правом контроле открывается контент. Что бы среагировать на события нажатия, я подписываюсь на событие ScriptNotify, но, что бы он работал, необходим прописать это событие в html коде. Таким образом я из HTML получаю указание, какую страницу мне необходимо открыть во втором контроле. WebView отлично работает с HTML кодом. Можно очень быстро создавать необходимые документы, используя только лишь HTML. Так же, в параметрах можно передавать любую другую информацию.
    <p><a class="mainPageLink" href="javascript:window.external.notify('General information.html')">General information</a></p>
    Обратите внимание, что файлы хелпа лежат в папке для локализации, т.е. их реальный путь такой:
    Resources/en/HelpPages/_index.html
    а в программе путь к ним прописывать вот так:
    Resources/HelpPages/_index.html





    • Изменено Dmytro Bondarenko 28 ноября 2012 г. 12:38
    • Помечено в качестве ответа pRooTq 29 ноября 2012 г. 7:11
    28 ноября 2012 г. 8:20

Все ответы

  • О, совсем недавно по такому принципу делал локализированный хелп в программе с использованием WebView. Скину Вам кусок кода.

    1. открытии страницы  
    mainWebView.Navigate(new Uri("ms-appx-web:///Resources/HelpPages/_index.html", UriKind.Absolute));

    2. подписка на события страницы (см ниже зачем)
     mainWebView.ScriptNotify += (sender, args) =>
                {
                    subWebView.Navigate(new Uri(String.Format("ms-appx-web:///Resources/HelpPages/{0}", args.Value), UriKind.Absolute));
                };
    У меня два контрола, в левый я вывожу список разделов хелпа, в правом контроле открывается контент. Что бы среагировать на события нажатия, я подписываюсь на событие ScriptNotify, но, что бы он работал, необходим прописать это событие в html коде. Таким образом я из HTML получаю указание, какую страницу мне необходимо открыть во втором контроле. WebView отлично работает с HTML кодом. Можно очень быстро создавать необходимые документы, используя только лишь HTML. Так же, в параметрах можно передавать любую другую информацию.
    <p><a class="mainPageLink" href="javascript:window.external.notify('General information.html')">General information</a></p>
    Обратите внимание, что файлы хелпа лежат в папке для локализации, т.е. их реальный путь такой:
    Resources/en/HelpPages/_index.html
    а в программе путь к ним прописывать вот так:
    Resources/HelpPages/_index.html





    • Изменено Dmytro Bondarenko 28 ноября 2012 г. 12:38
    • Помечено в качестве ответа pRooTq 29 ноября 2012 г. 7:11
    28 ноября 2012 г. 8:20
  • Спасибо большое, все работает, а как реализовать поиск?  
    29 ноября 2012 г. 7:11
  • Создайте новую ветку обсуждения :)
    29 ноября 2012 г. 8:35