Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предыдущая тема была перенос XAML и пользовательского интерфейса.
Код, который интегрируется с самим устройством и его датчиками, включает входные данные и выходные данные пользователя. Она также может включать обработку данных. Но этот код обычно не считается слоем пользовательского интерфейса или уровнем данных. Этот код включает интеграцию с контроллером вибрации, акселерометром, гироскопом, микрофоном и динамиком (который пересекается с распознаванием речи и синтезом), (гео)расположение и модальность ввода, такие как сенсорный ввод, мышь, клавиатура и перо.
Жизненный цикл приложения (управление жизненным циклом процесса)
Приложение Windows Phone Silverlight содержит код для сохранения и восстановления состояния приложения и его представления, чтобы поддерживать приостановку и последующую повторную активацию. Жизненный цикл приложений универсальной платформы Windows (UWP) имеет сильные параллели с приложениями Windows Phone Silverlight, так как они разработаны с той же целью максимизации ресурсов, доступных любому приложению, которое пользователь выбрал в переднем плане в любой момент. Вы обнаружите, что ваш код будет довольно легко адаптироваться к новой системе.
Примечание: Нажатие аппаратной кнопки "Назад" автоматически завершает работу приложения Windows Phone Silverlight. Нажатие кнопки "Назад" на мобильном устройстве не автоматически завершает работу приложения UWP. Вместо этого он становится приостановленным, а затем его можно завершить. Но эти сведения прозрачны для приложения, которое отвечает соответствующим образом на события жизненного цикла приложения.
"Разбоунное окно" — это период времени между приложением, который становится неактивным, и системой, вызывающей событие приостановки. Для приложения UWP нет окна задержки, событие приостановки возникает, как только приложение сделается неактивным.
Дополнительную информацию см. в разделе "Цикл жизни приложений".
Фотоаппарат
Код захвата камеры Windows Phone Silverlight использует классы Microsoft.Devices.Camera, Microsoft.Devices.PhotoCameraили Microsoft.Phone.Tasks.CameraCaptureTask. Чтобы перенести этот код на универсальную платформу Windows (UWP), можно использовать класс MediaCapture . В разделе CaptureToStorageFileAsync представлен пример кода. Этот метод позволяет записать фотографию в файл хранилища, и для этого требуется микрофон и веб-камерывозможности устройства в манифесте пакета приложения.
Другим вариантом является класс CameraCaptureUI, который также требует микрофона и возможности устройства веб-камеры.
Приложения Lens не поддерживаются для приложений UWP.
Обнаружение платформы, на котором запущено приложение
Изменение подхода к таргетированию приложений происходит с Windows 10. Новая концептуальная модель заключается в том, что приложение предназначено для универсальной платформы Windows (UWP) и выполняется на всех устройствах Windows. Затем он может выбрать включение функций, которые являются эксклюзивными для определенных семейств устройств. При необходимости приложение также имеет возможность ограничить свою направленность на одно или несколько семейств устройств. Дополнительные сведения о семействах устройств и способах выбора целевого семейства устройств см. в руководстве по приложениям UWP.
Заметка Рекомендуется не использовать семейство операционных систем или устройств для обнаружения наличия функций. Определение текущей операционной системы или семейства устройств обычно не является лучшим способом определить, присутствует ли определенная операционная система или семейство устройств. Вместо того чтобы обнаруживать семейство операционной системы или семейство устройств (и номер версии), следует протестировать наличие самой возможности (см. условная компиляция и адаптивный код). Если требуется определенная операционная система или семейство устройств, обязательно используйте ее как минимальную поддерживаемую версию, а не проектируйте тест для этой одной версии.
Чтобы настроить пользовательский интерфейс приложения на разных устройствах, рекомендуется использовать несколько методов. Продолжайте использовать автоматически масштабируемые элементы и динамические панели макета, как вы всегда это делали. В разметке XAML продолжайте использовать размеры в эффективных пикселях (ранее называвшихся просмотровыми пикселями), чтобы пользовательский интерфейс адаптировался к различным разрешениям и коэффициентам масштабирования (см. раздел Эффективные и просмотровые пиксели, расстояние просмотра и коэффициенты масштабирования). И используйте адаптивные триггеры и средства задания visual State Manager для адаптации пользовательского интерфейса к размеру окна (см. руководство по приложениям UWP).
Однако, если у вас есть сценарий, в котором неизбежно определить семейство устройств, вы можете это сделать. В этом примере мы используем класс AnalyticsVersionInfo для перехода на страницу, адаптированную для семейства мобильных устройств, где это необходимо, и мы обязательно вернемся к странице по умолчанию в противном случае.
if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile")
rootFrame.Navigate(typeof(MainPageMobile), e.Arguments);
else
rootFrame.Navigate(typeof(MainPage), e.Arguments);
Ваше приложение также может определить семейство устройств, на котором оно работает, на основе факторов выбора ресурсов, которые действуют. В приведенном ниже примере показано, как это сделать в императивном стиле, а в разделе ResourceContext.QualifierValues описывается более типичный сценарий использования класса при загрузке ресурсов, специфичных для семейства устройств, на основе фактора семейства устройств.
var qualifiers = Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().QualifierValues;
string deviceFamilyName;
bool isDeviceFamilyNameKnown = qualifiers.TryGetValue("DeviceFamily", out deviceFamilyName);
Кроме того, см. раздел "Условная компиляция" и адаптивный код.
Состояние устройства
Приложение Windows Phone Silverlight может использовать класс Microsoft.Phone.Info.DeviceStatus для получения сведений об устройстве, на котором работает приложение. Хотя для пространства имен Microsoft.Phone.Info нет прямого эквивалента UWP, ниже приведены некоторые свойства и события, которые можно использовать в приложении UWP вместо вызовов членов класса DeviceStatus .
Windows Phone Silverlight | UWP (Универсальная платформа Windows) |
---|---|
Свойства ApplicationCurrentMemoryUsage и Свойства ApplicationCurrentMemoryUsageLimit | Свойства MemoryManager.AppMemoryUsage и AppMemoryUsageLimit |
свойство пикового использования памяти приложением (ApplicationPeakMemoryUsage) | Используйте средства профилирования памяти в Visual Studio. Дополнительные сведения см. в разделе "Измерение использования памяти". |
DeviceFirmwareVersion свойство | свойство EasClientDeviceInformation.SystemFirmwareVersion (только семейство настольных устройств) |
свойство устройства версии аппаратного обеспечения | свойство EasClientDeviceInformation.SystemHardwareVersion (только семейство настольных устройств) |
DeviceManufacturer свойство | Свойство EasClientDeviceInformation.SystemManufacturer (только для семейства настольных устройств) |
свойство DeviceName | в свойстве EasClientDeviceInformation.SystemProductName (только семейство настольных устройств) |
свойство DeviceTotalMemory | Нет эквивалента |
свойство IsKeyboardDeployed | Нет эквивалента. Это свойство содержит сведения об аппаратных клавиатурах для мобильных устройств, которые часто не используются. |
Свойство IsKeyboardPresent | Нет эквивалента. Это свойство содержит сведения об аппаратных клавиатурах для мобильных устройств, которые часто не используются. |
событие KeyboardDeployedChanged | Нет эквивалента. Это свойство содержит сведения об аппаратных клавиатурах для мобильных устройств, которые часто не используются. |
свойство параметра PowerSource | Нет эквивалента |
событие PowerSourceChanged | Обработайте событие RemainingChargePercentChanged (только семейство мобильных устройств). Событие инициируется, когда значение свойства RemainingChargePercent (только для семейства мобильных устройств) уменьшается на 1%. |
Местоположение
Когда приложение, объявляющее возможность расположения в манифесте пакета приложения, запускается в Windows 10, система предложит пользователю предоставить согласие. Таким образом, если ваше приложение отображает собственный настраиваемый запрос на согласие или предоставляет переключатель включения-выключения, вам следует удалить это, чтобы конечный пользователь получал уведомление только один раз.
Ориентация
Эквивалент приложения UWP для свойств PhoneApplicationPage.SupportedOrientations и Orientation — это элемент uap:InitialRotationPreference в манифесте пакета приложения. Выберите вкладку приложения, если она еще не выбрана, и установите один или несколько флажков в разделе Поддерживаемые повороты для записи настроек.
Однако рекомендуется разработать пользовательский интерфейс приложения UWP, чтобы выглядеть отлично независимо от ориентации устройства и размера экрана. Более подробно об этом вы найдете в Перенос для форм-факторов и взаимодействия с пользователем, которая является темой после следующей.