Создание ссылок на внешние веб-страницы (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Узнайте, как создавать ссылки на внешние веб-страницы и отображать их в своем приложении.

Необходимые условия

Инструкции

Создание ссылки на внешнюю веб-страницу

Чтобы создать ссылку на внешнюю веб-страницу, просто добавьте гиперссылку в HTML-код. В этом примере показано создание ссылки на веб-страницу www.bing.com. Когда вы щелкаете ссылку, соответствующая страница открывается в веб-браузере (а не в вашем приложении).


<p><a href="https://www.bing.com">Search the web</a></p>

Отображение внешней веб-страницы в приложении

Ваше приложение может отображать внешнюю страницу в элементе iframe, но вы не можете переходить со страницы верхнего уровня на внешнюю веб-страницу.

Hh780594.wedge(ru-ru,WIN.10).gifОтображение внешней веб-страницы в вашем приложении

  1. Создайте элемент iframe для отображения веб-страницы. Задайте атрибут name элемента iframe.

    
    <iframe name="targetFrame">
    </iframe>
    
  2. Создайте ссылку на внешний веб-сайт. В качестве значения ее атрибута target укажите имя элемента iframe, который вы создали на предыдущем шаге.

    
    <p><a href="https://www.bing.com" target="targetFrame" >Search the web</a></p>
    
    <iframe name="targetFrame">
    </iframe>
    

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

    При отображении внешней веб-страницы в iframe рекомендуется предусмотреть настраиваемую страницу ошибок на случай проблем со страницей. Пример того, как это сделать, см. в разделе XHR, обработка ошибок навигации и образец схем URL.

    Примечание  По причинам, связанным с производительностью, приложения Магазина Windows могут бесконечно производить кэширование удаленного содержимого. В результате ваше приложение может не показывать последние обновления сценариев или CSS. Удаление и повторная установка приложения очищают кэш. Другие решения включают случайный параметр в строке запроса или настройку веб-сервера таким образом, чтобы он не выполнял кэширование. Дополнительные сведения см. в разделе Отключение кэширования в приложении Internet Explorer.

     

Локальный контекст и веб-контекст

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

Возможности, к которым могут обращаться страницы и сценарии в локальном контексте и в веб-контексте, различаются. Например, страницы в локальном контексте могут использовать среду выполнения Windows и выполнять междоменные запросы XHR. Независимо от контекста страницы могут обращаться к библиотеке Windows для JavaScript.

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

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

Hh780594.wedge(ru-ru,WIN.10).gifПредоставление странице в веб-контексте доступа к дополнительным возможностям

  1. Чтобы предоставить странице в веб-контексте доступ к дополнительным возможностям, необходимо создать правило для URI содержимого. В обозревателе решений Microsoft Visual Studio щелкните правой кнопкой мыши файл package.appxmanifest вашего приложения и выберите команду Открыть в конструкторе. Откроется конструктор манифестов.

  2. В столбце URI укажите универсальный код ресурса (URI) веб-страницы, которую нужно добавить.

    Существует несколько способов указать соответствие URI.

    • Вы можете указать точное имя узла.
    • Вы можете указать имя узла, для которого включен или исключен универсальный код ресурса (URI) со всеми поддоменами этого имени узла.
    • Вы можете указать точный URI.
    • Вы можете указать точный URI, который может содержать свойство запроса
    • Для правила включения вы можете указать частичный путь и использовать подстановочный знак для указания конкретного расширения файлов.
    • Относительные пути можно использовать для правил исключения, но не для правил включения.

    Для этого примера установите для URI значение https://www.bing.com/*.

    Примечание  Если у вас более одного поддомена, нужно использовать один подстановочный знак для каждого поддомена. Например, "https://*.microsoft.com" соответствует "https://"any".microsoft.com", но не соответствует "https://"this"."any".microsoft.com."

     

  3. В раскрывающемся списке Правило можно указать, нужно ли включать URI. Задайте здесь значение включить.

  4. Щелкните Добавить новый URI, чтобы добавить правило. Конструктор сам добавляет новый элемент Rule в раздел ApplicationContentUriRules файла манифеста вашего пакета.

          <ApplicationContentUriRules>
            <Rule Match="https://www.bing.com/*" Type="include" />
          </ApplicationContentUriRules>
    

Переходы между страницами в веб-контексте и страницами в локальном контексте

Нельзя перейти со страницы в веб-контексте обратно на страницу в локальном контексте, если не вызвать метод MSApp.addPublicLocalApplicationUri со страницы в локальном контексте и не передать ему URI страницы, на которую должен осуществляться переход со страниц в веб-контексте. Например, чтобы со страницы в веб-контексте можно было переходить на страницу page2.html в вашем приложении, используйте следующий код.

MSApp.addPublicLocalApplicationUri("page2.html");

Теперь со страниц в веб-контексте можно переходить на страницу page2.html. Этот метод нужно вызвать только один раз для каждой страницы в локальном контексте, которую вы хотите сделать доступной для страниц в веб-контексте.

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

 

Связанные разделы

Возможности и ограничения в зависимости от контекста