Показывать заставку, пока веб-браузер не отобразит страницу - PullRequest
0 голосов
/ 10 декабря 2011

Создание приложения для Windows Phone 7, которое оборачивается поверх веб-приложения HTML 5 с помощью виджета WebBrowser.

Есть ли способ сохранить заставку (splashscreenimage.jpg), пока WebBrowser полностью не отобразит веб-страницу? (отображается белым цветом перед отображением страницы)

Ответы [ 4 ]

2 голосов
/ 13 декабря 2011

Изображение скриншота по умолчанию отображается до тех пор, пока не загрузится первая страница в приложении. После этого момента контент будет завершен.

Элемент управления WebBrowser является событием Loaded, но это не то же самое, что содержимое отображаемой страницы. (Если содержимое страницы является сложным и требует полной визуализации, это будет увеличивать продолжительность отображения белого / пустого экрана.)

Вам понадобится создать собственный экран-заставку, чтобы получить желаемый эффект. Сделайте это в XAML, а не в HTML, иначе ваш заставка HTML будет страдать от той же проблемы, что и сейчас. Добавьте изображение на ту же страницу, что и веб-браузер, но поместите его поверх элемента управления веб-браузера. Измените его видимость, как только вы узнаете, что основное содержимое было отображено.

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

В качестве альтернативы, вы можете добавить некоторый код на страницу, который будет уведомлять хостинговую страницу после загрузки основной части документа.

0 голосов
/ 10 декабря 2011

Вы можете попробовать это.

  1. отображать заставку поверх HTML, используя CSS с z-index или / и абсолютным позиционированием
  2. Поместить элемент в конец страницы непосредственно перед закрытием тела
  3. проверка на наличие элемента.
  4. Если элемент существует, вы можете удалить заставку

Я бы посоветовал вам снять экран с задержкой в ​​несколько секунд, чтобы загружались все изображения

0 голосов
/ 10 декабря 2011

Поместите этот стиль в <head>:

<style>
    #splash {
        position: absolute;
        top: 0px;
        left: 0px;
        bottom: 0px;
        right: 0px;
        background: #fff;
    }
</style>

Поместите свой разделительный экран в начало <body>:

<body>
        <div id="splash">
            ... splash screen contents ...
        </div>
....

и непосредственно перед закрытием тега body:

....
    <script type="text/javascript">
        document.getElementById('splash').style['display'] = 'none';
    </script>
</body>
0 голосов
/ 10 декабря 2011

Приложения только для веб-браузера не пройдут сертификацию.

Тем не менее, вы можете отображать изображение самостоятельно, пока не запустится LoadCompleted в WebBrowser.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...