Поделиться через


Назначение нескольких платформ с помощью приложения WinUI 3

После создания начального приложения Hello World WinUI 3 вы можете задуматься о том, как получить доступ к нескольким пользователям с помощью одной базы кода. В этом руководстве будет использоваться uno Platform для расширения доступа к существующему приложению, которое позволяет повторно использовать бизнес-логику и слой пользовательского интерфейса на собственном мобильном устройстве, в Интернете и на рабочем столе.

Приложение Hello world, работающее в браузере.

Необходимые компоненты

  • Visual Studio 2022 17.4 или более поздней версии
  • Настройка компьютера разработки (см. статью "Начало работы с WinUI")
  • ASP.NET и рабочую нагрузку веб-разработки (для разработки WebAssembly) Рабочая нагрузка веб-разработки в VS
  • Разработка многоплатформенного пользовательского интерфейса приложений .NET (для разработки iOS, Android, Mac Catalyst). рабочая нагрузка dotnet mobile в VS
  • Установленная разработка классических приложений .NET (для разработки Gtk, Wpf и Linux Framebuffer) Рабочая нагрузка .net desktop в VS

Завершение работы среды

  1. Откройте командную строку, Терминал Windows, если она установлена, или в командной строке или Windows PowerShell из меню "Пуск".

  2. Установите или обновите uno-check средство:

    • Используйте следующую команду:

      dotnet tool install -g uno.check
      
    • Чтобы обновить средство, если вы уже установили старую версию, выполните следующие действия.

      dotnet tool update -g uno.check
      
  3. Запустите средство с помощью следующей команды:

    uno-check
    
  4. Следуйте инструкциям, указанным средством. Так как она должна изменить систему, вам может потребоваться разрешение с повышенными привилегиями.

Установка шаблонов решений Uno Platform

Запустите Visual Studio, а затем щелкните Continue without code. Щелкните Extensions в>Manage Extensions строке меню.

Элемент строки меню Visual Studio, который считывает модули управления расширениями

В диспетчере расширений разверните узел Online и найдите Unoего, установите Uno Platform расширение или скачайте его из Visual Studio Marketplace, а затем перезапустите Visual Studio.

Управление окном расширений в Visual Studio с расширением Uno Platform в качестве результата поиска

Создание приложения

Теперь, когда мы готовы создать мультиплатформенное приложение, мы рассмотрим, как создать новое приложение Uno Platform. Мы скопируйм код XAML из проекта Hello World WinUI 3 предыдущего руководства в проект с несколькими платформами. Это возможно, так как Uno Platform позволяет повторно использовать существующую базу кода. Для функций, зависящих от API ОС, предоставляемых каждой платформой, их можно легко работать с течением времени. Этот подход особенно полезен, если у вас есть существующее приложение, которое вы хотите перенести на другие платформы.

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

Откройте Visual Studio и создайте проект с помощьюFile>>NewProject:

Создание нового проекта

Найдите uno и выберите шаблон проекта приложения Uno Platform App:

Отмена приложения платформы

Укажите имя проекта, имя решения и каталог. В этом примере проект Hello World MultiPlatform принадлежит решению Hello World MultiPlatform, которое будет жить в C:\Projects:

Указание сведений о проекте

Создайте новое решение C# с помощью типа приложения Uno Platform App на начальной странице Visual Studio. Чтобы избежать конфликтов с кодом из предыдущего руководства, мы предоставим этому решению другое имя Hello World Uno.

Теперь вы выберете базовый шаблон для использования мультиплатформенного приложения Hello World. Шаблон приложения Uno Platform поставляется с двумя предварительно настроенными параметрами, которые позволяют быстро приступить к работе с пустым решением или конфигурацией по умолчанию, которая включает ссылки на библиотеки Uno.Material и Uno.Toolkit. Конфигурация по умолчанию также включает uno.Extensions, которая используется для внедрения зависимостей, настройки, навигации и ведения журнала, а также использует MVUX вместо MVVM, что делает его отличной отправной точкой для быстрого создания реальных приложений.

Шаблон решения uno для типа запуска проекта

Чтобы упростить работу, выберите пустой предустановку. Затем нажмите кнопку "Создать ". Дождитесь создания проектов и их зависимостей.

Баннер в верхней части редактора может попросить перезагрузить проекты, щелкните " Перезагрузить проекты": Баннер Visual Studio, предлагающий перезагрузить проекты для завершения изменений

Создание приложения

Теперь, когда вы создали функциональную начальную точку мультиплатформенного приложения WinUI, вы можете скопировать разметку в него из проекта Hello World WinUI 3, описанного в предыдущем руководстве.

В Обозреватель решений должна появиться следующая структура файлов по умолчанию:

Структура файлов по умолчанию

Убедитесь, что Visual Studio открыт проект WinUI 3, а затем скопируйте дочерние элементы XAML из MainWindow.xaml проекта MainPage.xaml WinUI 3 в файл в проекте Uno Platform. Представление MainPage XAML должно выглядеть следующим образом:

<Page x:Class="HelloWorld.MainPage"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:local="using:HelloWorld"
   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
   mc:Ignorable="d"
   Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

      <!-- Below is the code you copied from MainWindow: -->
      <StackPanel Orientation="Horizontal"
                  HorizontalAlignment="Center"
                  VerticalAlignment="Center">
          <TextBlock x:Name="myText" 
                     Text="Hello world!"
                     Foreground="Red"/>
      </StackPanel>
</Page>

Запустите целевой объект HelloWorld.Windows. Обратите внимание, что это приложение WinUI идентично предыдущему руководству.

Теперь вы можете создать и запустить приложение на любой из поддерживаемых платформ. Для этого можно использовать раскрывающийся список панели инструментов отладки для выбора целевой платформы для развертывания:

  • Чтобы запустить голову WebAssembly (Wasm):

    • Щелкните проект правой HelloWorld.Wasm кнопкой мыши, выберите "Задать в качестве запускаемого проекта"
    • Нажмите кнопку HelloWorld.Wasm для развертывания приложения
    • При желании проект можно использовать HelloWorld.Server в качестве альтернативы
  • Отладка для iOS:

    • Щелкните проект правой HelloWorld.Mobile кнопкой мыши, выберите "Задать в качестве запускаемого проекта"

    • В раскрывающемся списке панели инструментов отладки выберите активное устройство iOS или симулятор. Для работы вам потребуется связаться с Mac.

      Раскрывающийся список Visual Studio для выбора целевой платформы для развертывания

  • Отладка для Mac Catalyst:

    • Щелкните проект правой HelloWorld.Mobile кнопкой мыши, выберите "Задать в качестве запускаемого проекта"
    • В раскрывающемся списке панели инструментов отладки выберите удаленное устройство macOS. Для работы вам потребуется связаться с одним из них.
  • Отладка платформы Android :

    • Щелкните проект правой HelloWorld.Mobile кнопкой мыши, выберите "Задать в качестве запускаемого проекта"
    • В раскрывающемся списке панели инструментов отладки выберите активное устройство Android или эмулятор
      • Выберите активное устройство в подмене "Устройство"
  • Чтобы выполнить отладку в Linux с помощью Skia GTK, выполните следующую команду:

    • Щелкните проект правой HelloWorld.Skia.Gtk кнопкой мыши и выберите "Задать в качестве запускаемого проекта"
    • Нажмите кнопку HelloWorld.Skia.Gtk для развертывания приложения

Теперь вы готовы приступить к созданию мультиплатформенного приложения!

См. также