Руководство по данным об использовании подключения

Applies to Windows and Windows Phone

Придерживайтесь следующих рекомендаций при использовании в подключенном приложении API сведений о сети среды выполнения Windows.

Изменение поведения приложения согласно типу стоимости сети

Хотя при обнаружении новых сетей Windows 8 автоматически предоставит новые возможности подключения, простой переход от существующих подключений на новые гарантируется не для всех операций. Приложения Магазина Windows, которые подключаются к узлам в Интернете, должны использовать API сведений о сети, чтобы получать информацию о стоимости, а также событиях изменения состояния для сети, через которую они отправляют или получают данные.

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

Тип стоимости сетиРекомендуемое поведение приложения

Без ограничений

  • Используйте сетевое подключение произвольным образом.

Переменное ограничение на передачу данных (или основанное на приближении к определенному значению)

  • Задерживайте выполнение менее приоритетных операций или планируйте их на более позднее время, пока не станет доступной неограниченная сеть.
  • При потоковой передаче пользователю какого-либо содержимого (например, фильма или видео) используйте более низкую скорость передачи. Например, вместо потоковой передачи видео высокой четкости передавайте видеопоток стандартной четкости, если пользователь находится в сети с лимитным тарифным планом.
  • Используйте более низкую пропускную способность. Например, переключайтесь в режим загрузки только заголовков при получении электронной почты.
  • Используйте сеть реже. Например, можно сократить частоту операций опроса для синдикации веб-каналов новостей, обновления содержимого веб-сайтов или получения веб-уведомлений.
  • Разрешите пользователям явно выбрать потоковую передачу видео высокой четкости, получение полных текстов электронных сообщений, скачивание обновлений с низким приоритетом и т. д., а не включайте эти возможности по умолчанию.
  • Явно запрашивайте разрешение у пользователя, прежде чем использовать сеть.

Неизвестно

  • Если тип стоимости сети неизвестен, считайте подключение неограниченным.

 

Поддержка надежного подключения к Интернету

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

Для поддержки возможности подключения к Интернету все приложения Магазина Windows должны выполнять следующие действия:

  1. Вызывать GetInternetConnectionProfile для проверки стоимости подключения к Интернету.
  2. Регистрироваться для получения уведомлений об изменениях состояния сети для данного подключения.
  3. Инициализировать сетевую операцию при подключении.
  4. При получении уведомления об изменении состояния сети доступные варианты подключения и стоимость могут измениться. Приложение должно:
    • Проверить стоимость подключения к Интернету. При изменении характеристики стоимости с неограниченного подключения на подключение с лимитным тарифным планом или обратно — попытаться повторить сетевую операцию. Windows автоматически использует доступную сеть с минимальной стоимостью.
    • Если характеристика стоимости подключения к Интернету не изменилась, но получено уведомление, связанное с затратами (например, о потреблении ресурсов свыше 80 %, переменных затратах, роуминге и т. д.), — адаптировать поведение согласно рекомендациям таблицы NetworkCostType выше.
  5. Если ошибка указывает на потерю подключения, приложение должно:
    • Проверить стоимость подключения к Интернету через другую доступную сеть. Следовать рекомендациям, приведенным в таблице NetworkCostType выше.
    • Повторить операцию; если это не удалось, ожидать уведомления NetworkStatusChange.

Отладка и диагностика подключенного приложения

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

Это влияет на все приложения Магазина Windows, использующие сеть либо напрямую (с помощью сокетов), либо опосредованно (с помощью API, который в конечном итоге использует сеть). В идеале операционная система должна автоматически обрабатывать условия ошибки для разработчика, а если исправить ситуацию не удается, приложения должны быть готовы к обработке ошибок.

Все подключенные приложения Магазина Windows должны выполнять следующие действия.

  • В случае возникновения сетевой ошибки повторить операцию, если это целесообразно. Например, не следует повторять операцию при неудачной проверке подлинности, но в случае исчезновения сети, с которой вы обменивались данными, нужно повторить операцию, так как может оказаться доступной другая сеть. Многие ошибки можно легко устранить, повторив операцию. При повторе операции следуйте инструкциям, приведенным выше в разделе "Реагирование на изменения состояния сети".
  • Убедитесь, что используются асинхронные API, в связи с чем отсутствуют блокирующие вызовы в потоке пользовательского интерфейса. Иными словами, если на выполнение сетевой операции требуется много времени или возникла ошибка, ваше приложение не должно зависать. Не эмулируйте синхронное поведение, скрывающее асинхронную природу среды выполнения Windows.
  • Тестируйте приложение в различных условиях сетевой среды при таких действиях, как отключение или восстановление соединения с сетью, приостановка и возобновление, а также переключение между сетями.
  • Если во время проверки обнаруживаются неявные ошибки, подключите трассировку событий Windows.

Вопросы безопасности

В следующих статьях представлены рекомендации по написанию безопасного кода на языке C++.

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

Разработка подключенных приложений (техническое описание)
Образец сведений о сети
Для разработчиков (HTML)
Состояние подключения и управление расходами
Для разработчиков (XAML)
Состояние подключения и управление расходами

 

 

Показ:
© 2015 Microsoft