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.
Notatka
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
Ostrzeżenie
Ta wersja ASP.NET Core nie jest już obsługiwana. Aby uzyskać więcej informacji, zobacz Zasady pomocy technicznej dla platform .NET i .NET Core. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
Ten artykuł objaśnia ASP.NET Core Blazor Hybrid, sposób tworzenia interaktywnego internetowego interfejsu użytkownika po stronie klienta za pomocą platformy .NET w aplikacji ASP.NET Core.
Dzięki platformie Blazor Hybrid możesz łączyć natywne frameworki klienckie dla komputerów i urządzeń mobilnych za pomocą rozwiązań .NET i Blazor.
W aplikacji Blazor Hybridkomponenty Razor są uruchamiane natywnie na urządzeniu. Składniki są renderowane do osadzonej kontrolki Web View za pośrednictwem lokalnego kanału interoperacyjnego. Składniki nie są uruchamiane w przeglądarce i WebAssembly nie bierze w tym udziału. Komponenty Razor szybko ładują i wykonują kod i mają pełny dostęp do natywnych funkcji urządzenia za pośrednictwem platformy .NET. Style komponentów renderowane w elemencie Web View są zależne od platformy i mogą wymagać uwzględnienia różnic renderowania na różnych platformach przy użyciu niestandardowych arkuszy stylów.
Blazor Hybrid artykuły obejmują tematy związane z integrowaniem składników Razor z natywnymi frameworkami klienta.
Aplikacje Blazor Hybrid z .NET MAUI
Obsługa platformy Blazor Hybrid jest wbudowana w framework .NET Multi-platform App UI (.NET MAUI). Struktura .NET MAUI obejmuje kontrolkę BlazorWebView umożliwiającą renderowanie komponentów Razor w osadzonym widoku Web View. Korzystając jednocześnie z .NET MAUI i Blazor, możesz ponownie używać jednego zestawu internetowych składników interfejsu użytkownika w aplikacjach mobilnych, klasycznych i internetowych.
Aplikacje Blazor Hybrid WPF i Windows Forms
Aplikacje Blazor Hybrid można tworzyć przy użyciu platform Windows Presentation Foundation (WPF) i Windows Forms.
BlazorUdostępnia BlazorWebView kontrolki dla obu tych frameworków (WPF BlazorWebView, Windows Forms BlazorWebView). Składniki Razor są uruchamiane natywnie na pulpicie systemu Windows i są renderowane do osadzonego widoku Web View. Użycie platformy Blazor w strukturach WPF i Windows Forms umożliwia dodanie do istniejących aplikacji klasycznych dla systemu Windows nowego interfejsu użytkownika, który może być ponownie używany na różnych platformach za pomocą struktury .NET MAUI lub w Internecie.
Web View konfiguracja
Blazor Hybrid udostępnia bazową konfigurację Web View dla różnych platform za pośrednictwem zdarzeń kontrolki BlazorWebView:
- Element
BlazorWebViewInitializingzapewnia dostęp do ustawień używanych w celu utworzenia widoku Web View na każdej platformie, jeśli ustawienia są dostępne. - Element
BlazorWebViewInitializedzapewnia dostęp do widoku Web View w celu umożliwienia dalszej konfiguracji ustawień.
Użyj preferowanych wzorców na każdej platformie, aby przypisać procedury obsługi zdarzeń do zdarzeń w celu wykonania kodu niestandardowego.
Dokumentacja interfejsu API:
- .NET MAUI
- WPF
- Formularze systemu Windows
Nieobsługiwane wyjątki w aplikacjach Windows Forms i WPF
Ta sekcja dotyczy tylko aplikacji Windows Forms i WPF Blazor Hybrid .
Utwórz callback dla UnhandledException dla właściwości System.AppDomain.CurrentDomain. W poniższym przykładzie użyto dyrektywy kompilatora, aby wyświetlić MessageBox, który powiadamia użytkownika o wystąpieniu błędu lub wyświetla informacje o błędzie dla dewelopera. Zarejestruj informacje o błędzie w error.ExceptionObject.
AppDomain.CurrentDomain.UnhandledException += (sender, error) =>
{
#if DEBUG
MessageBox.Show(text: error.ExceptionObject.ToString(), caption: "Error");
#else
MessageBox.Show(text: "An error has occurred.", caption: "Error");
#endif
// Log the error information (error.ExceptionObject)
};
Globalizacja i lokalizacja
Ta sekcja dotyczy .NET MAUIBlazor Hybrid tylko aplikacji.
.NET MAUI konfiguruje element CurrentCulture i CurrentUICulture na podstawie informacji o otoczeniu urządzenia.
IStringLocalizer i inne interfejsy API w przestrzeni nazw Microsoft.Extensions.Localization zwykle działają zgodnie z oczekiwaniami, a także z formatowaniem, analizą i wiązaniem zależnymi od kultury użytkownika.
W przypadku dynamicznej zmiany kultury aplikacji w czasie wykonywania należy ponownie załadować aplikację, aby odzwierciedlić zmianę kultury, co spowoduje ponowne renderowanie składnika głównego i przekazanie nowej kultury do ponownie renderowanych składników podrzędnych.
. System zasobów platformy .NET obsługuje osadzanie zlokalizowanych obrazów (jako obiektów blob) w aplikacji, ale Blazor Hybrid nie może teraz wyświetlać obrazów osadzonych w składnikach Razor. Nawet jeśli użytkownik odczytuje bajty obrazu do elementu Stream za pomocą ResourceManager, framework obecnie nie obsługuje renderowania pobranego obrazu w składniku Razor.
Aby uzyskać więcej informacji, zobacz następujące zasoby:
- Lokalizacja (dokumentacja.NET MAUI)
- Blazor Składnik obrazu służący do wyświetlania obrazów, które nie są dostępne za pośrednictwem punktów końcowych HTTP (dotnet/aspnetcore #25274)
Uzyskiwanie dostępu do usług o określonym zakresie z natywnego interfejsu użytkownika
BlazorWebView ma metodę TryDispatchAsync, która wywołuje określony Action<ServiceProvider> asynchronicznie i przekazuje usługi o zakresie scoped dostępne w komponentach Razor. Dzięki temu kod z natywnego interfejsu użytkownika może uzyskiwać dostęp do usług o określonym zakresie, takich jak NavigationManager:
private async void MyMauiButtonHandler(object sender, EventArgs e)
{
var wasDispatchCalled = await _blazorWebView.TryDispatchAsync(sp =>
{
var navMan = sp.GetRequiredService<NavigationManager>();
navMan.CallSomeNavigationApi(...);
});
if (!wasDispatchCalled)
{
...
}
}
Gdy parametr wasDispatchCalled ma wartość false, należy wziąć pod uwagę, co zrobić, jeśli połączenie nie zostało przekazane. Ogólnie rzecz biorąc, dyspozycja nie powinna zakończyć się niepowodzeniem. W przypadku niepowodzenia zasoby systemu operacyjnego mogą zostać wyczerpane. Jeśli zasoby są wyczerpane, rozważ rejestrowanie komunikatu, zgłaszanie wyjątku i być może powiadomienie użytkownika.
Treści powiązane
- Samouczki dotyczące platformy ASP.NET Core Blazor Hybrid
- .NET Multi-platform App UI (.NET MAUI)
- Windows Presentation Foundation (WPF)
- Formularze systemu Windows