Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli masz aplikację dla systemu iOS i chcesz udostępnić ją Windows, narzędzia sztucznej inteligencji mogą wykonywać większość prac związanych z mapowaniem. Ta strona zawiera kluczowe tłumaczenia koncepcji z zestawu UIKit/SwiftUI do winUI 3. Użyj tych tabel jako kontekstu podczas monitowania agenta sztucznej inteligencji — zapewnienie dokładnych mapowań interfejsu API z góry generuje znacznie dokładniejsze dane wyjściowe niż prośba o konwersję ogólną.
Najpierw zainstaluj wtyczkę agenta WinUI , aby zapewnić agentowi dokładną wiedzę winUI 3:
gh copilot plugin install winui@awesome-copilot
Mapowanie koncepcji
| iOS (UIKit/ SwiftUI) | Odpowiednik winUI 3 | Notatki |
|---|---|---|
UIViewController |
Page |
Strony WinUI są nawigowane za pośrednictwem Frame |
UINavigationController |
Frame + NavigationView |
Używanie Frame.Navigate() do przechodzenia stron |
UITabBarController |
NavigationView (zakładki u góry lub po lewej) |
|
UITableView |
ListView |
Używanie ObservableCollection<T> do powiązania danych |
UICollectionView |
GridView |
|
UIAlertController |
ContentDialog |
Musi być elementem podrzędnym względem bieżącego XamlRoot |
UILabel |
TextBlock |
|
UITextField |
TextBox |
|
UIButton |
Button |
|
UIImageView |
Image |
|
UIStackView |
StackPanel |
Ustaw Orientation na Horizontal lub Vertical |
Auto Layout |
Grid / StackPanel / RelativePanel |
Układ XAML jest oparty na wierszach/kolumnach |
@State
/
@Binding (SwiftUI) |
INotifyPropertyChanged
/
ObservableProperty (CommunityToolkit.Mvvm) |
|
NSUserDefaults |
ApplicationData.Current.LocalSettings |
|
URLSession |
HttpClient |
Użyj System.Net.Http.HttpClient |
NotificationCenter |
Zdarzenia lub WeakReferenceMessenger (CommunityToolkit.Mvvm) |
|
DispatchQueue.main.async |
DispatcherQueue.TryEnqueue |
|
AppDelegate.applicationDidFinishLaunching |
App.OnLaunched |
|
SceneDelegate / windowScene |
MainWindow / AppWindow |
|
FileManager |
StorageFolder / StorageFile |
|
UserNotifications |
AppNotificationManager (Microsoft.Windows.AppNotifications) |
Monit startowy
Użyj tego monitu, aby nadać agentowi sztucznej inteligencji kontekst potrzebny przed rozpoczęciem migracji:
I'm migrating an iOS app to WinUI 3 using the Windows App SDK.
The app is written in [Swift / Objective-C] using [UIKit / SwiftUI].
Apply these mappings:
- UIViewController → Page, navigated via Frame
- UINavigationController → Frame + NavigationView
- UITableView → ListView with ObservableCollection<T>
- UIAlertController → ContentDialog (parented to XamlRoot)
- NSUserDefaults → ApplicationData.Current.LocalSettings
- URLSession → System.Net.Http.HttpClient
- DispatchQueue.main.async → DispatcherQueue.TryEnqueue
- @State / @Binding → INotifyPropertyChanged via CommunityToolkit.Mvvm
Use Microsoft.UI.Xaml.* namespaces throughout — never Windows.UI.Xaml.*.
Generate C# — not Swift.
Co nie mapuje się bezpośrednio
Niektóre pojęcia dotyczące systemu iOS nie mają bezpośredniego odpowiednika winUI:
-
Zakupy w aplikacji: Użyj interfejsów API handlu Microsoft Store za pośrednictwem
Windows.Services.Store - Powiadomienia push (APNs): Użyj Windows Push Notification Services (WNS)
- HealthKit / ARKit / CoreML: Windows ma powiązane obszary technologiczne — Windows ML, Windows Mixed Reality i Windows Sensors — ale nie są to bezpośrednie odpowiedniki i wymagają implementacji specyficznej dla platformy
- App Clips: brak bezpośredniego odpowiednika — rozważ łączenie ze strony internetowej do aplikacji