Язык: HTML | XAML

Загрузка файловых ресурсов (HTML)

Applies to Windows and Windows Phone

Сведения о загрузке файловых ресурсов из различных расположений.

Вы можете обращаться к файловым ресурсам в файлах приложения, которые вы предоставляете в составе пакета приложения или включаете в пакет SDK либо в пакет платформы, из состояния приложения или из Интернета. На эти файлы можно сделать ссылки в разметке (например, HTML или Notifications XML) или с помощью кода (например, XmlHttpRequest или storage file APIs). Приведенные в этом разделе примеры демонстрируют файловые ресурсы в определенных контекстах, но вы можете использовать большинство из них в других контекстах.

Интернет

Для доступа к файлам из Интернета используйте стандартные абсолютные универсальные коды ресурса (URI) HTTP.

<img src="http://www.contoso.com/images/logo.png" alt="Logo" />

Пакет приложения

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

Например, можно загрузить

Images/en-US/homeregion-USA/logo.scale-100_contrast-white.png

путем ссылки на

Images/logo.png

Для доступа к файлам относительно текущего документа используйте относительные URI.

<img src="images/logo.png" />

Для доступа к файлам относительно корня пакета используйте URI абсолютного пути (начинающиеся с "/").

<img src="/images/logo.png" />

Для обращения к файлам, которые хранятся в том же пакете, но происходят из библиотеки классов, используйте имя библиотеки классов:

<img src="/ClassLibraryName/images/logo.png" />

Для доступа к файлам, которые хранятся внутри пакета приложения из кода, где нет URI основного документа, укажите схему ms-appx:.


var uri = new Windows.Foundation.Uri('ms-appx:///images/logo.png');
var file = Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri);

Для доступа к файлам, хранящимся в пакете платформы, используйте абсолютный URI.

<script src="ms-appx://Microsoft.WinJS.1.0/js/ui.js"></script>

Для доступа к файлам, которые будут загружены в веб-секцию, используйте схему ms-appx-web:.

<iframe src="ms-appx-web:///html/webcompartment.html"></iframe>

Для доступа к файлам, находящимся в одной веб-секции или локальной секции с текущим документом, не указывайте схему.

<script src="//Microsoft.WinJS.1.0/js/ui.js"></script>

Состояние приложения

Для доступа к файлам, которые хранятся в состоянии приложения, используйте схему ms-appdata:. Состояние приложения может храниться в локальной папке, в перемещаемой папке или во временной папке.

Доступ к файлам, хранящимся в локальной папке:

<img src="ms-appdata:///local/images/logo.png" />

Доступ к файлам, хранящимся в перемещаемой папке:

<img src="ms-appdata:///roaming/images/logo.png" />

Доступ к файлам, хранящимся во временной папке:

<img src="ms-appdata:///temp/images/logo.png" />

storage file APIs может получить доступ к файлам внутри пакета приложения аналогичным образом:


var uri = new Windows.Foundation.Uri('ms-appdata:///local/images/logo.png');
var file = Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri);

События и изменения контекста

Ваше приложение должно при необходимости обновлять отображение своих ресурсов.

Во время работы приложений Магазина Windows в системе могут происходить изменения, например когда пользователь включает высокую контрастность. Это приведет к использованию другого набора квалификаторов. При различных изменениях в системе создаются события объекта ResourceContext.

Простейший способ организовать прослушивание этих событий в JavaScript — с помощью

WinJS.Resources.addEventListener('contextchanged', refresh, false);

Элементы изображений не обновляются автоматически при изменениях контекста, и именно приложение должно заменять изображения. Запросы CSS носителя служат альтернативным способом моментального обновления свойств CSS, таких как background-image.

 

 

Показ:
© 2015 Microsoft