Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blazor Hybrid dev tools topic #25384

Merged
merged 17 commits into from
Mar 30, 2022
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions aspnetcore/blazor/hybrid/handle-errors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: Handle errors in ASP.NET Core Blazor Hybrid
author: guardrex
description: Learn how to develop ASP.NET Core Blazor Hybrid apps that detect and handle errors.
monikerRange: '>= aspnetcore-6.0'
ms.author: riande
ms.custom: "mvc"
ms.date: 03/24/2022
no-loc: ["Blazor Hybrid", Home, Privacy, Kestrel, appsettings.json, "ASP.NET Core Identity", cookie, Cookie, Blazor, "Blazor Server", "Blazor WebAssembly", "Identity", "Let's Encrypt", Razor, SignalR]
uid: blazor/hybrid/handle-errors
zone_pivot_groups: blazor-hybrid-operating-systems
---
# Handle errors in ASP.NET Core Blazor Hybrid

This article explains how to use [browser developer tools](https://developer.mozilla.org/docs/Glossary/Developer_Tools) with Blazor Hybrid apps.

[!INCLUDE[](~/blazor/includes/blazor-hybrid-preview-notice.md)]

## Browser developer tools with .NET MAUI Blazor

Ensure your current Blazor Hybrid project is configured to support browser developer tools. Add the following to your `CreateMauiApp` method. The `CreateMauiApp` method should be within your main `Program` or `Startup` file and contain `services.AddMauiBlazorWebView()`.

```csharp
#if DEBUG
services.AddBlazorWebViewDeveloperTools();
#endif
```

:::zone pivot="windows"

To use browser developer tools with a Windows app:

1. Run the .NET MAUI Blazor app for Windows and navigate to an app page that uses a `BlazorWebView`.
1. Use the keyboard shortcut <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd> to open browser developer tools.
1. Developer tools provide a variety of features for working with apps, including which assets the page requested, how long assets took to load, and the content of loaded assets. The following example shows the **Console** tab to see the console messages, which includes any exception messages generated by the framework or developer code:

![Microsoft Edge DevTools window for a Blazor Hybrid app running on Windows](~/blazor/hybrid/handle-errors/_static/edge2.png)

:::zone-end

:::zone pivot="android"

To use browser developer tools with an Android app:

1. Start the Android emulator and navigate to an app page that uses a `BlazorWebView`.
1. Open Google Chrome or Microsoft Edge.
1. Navigate to `chrome://inspect/#devices` (Google Chrome) or `edge://inspect/#devices` (Microsoft Edge).
1. Select the **`inspect`** link button to open developer tools. The following example shows the **DevTools** page in Microsoft Edge:

![Microsoft Edge Devices showing the BlazorWebView's "inspect" link button to open developer tools.](~/blazor/hybrid/handle-errors/_static/android.png)

1. Developer tools provide a variety of features for working with apps, including which assets the page requested, how long assets took to load, and the content of loaded assets. The following example shows the **Console** tab to see the console messages, which includes any exception messages generated by the framework or developer code:

![Microsoft Edge DevTools window for a Blazor Hybrid app running on an emulated Pixel 5](~/blazor/hybrid/handle-errors/_static/edge1.png)

:::zone-end

:::zone pivot="ios"

To use Safari developer tools with an iOS app:

1. Open desktop Safari.
1. Select the **Preferences** > **Advanced** > **Show Develop** menu item.
1. Run the .NET MAUI Blazor app in the iOS simulator and navigate to an app page that uses a `BlazorWebView`.
1. Return to desktop Safari. Select **Develop** > **Simulator** > **0.0.0.0**. If multiple entries for **0.0.0.0** are present, select the entry that highlights the `BlazorWebView`. The `BlazorWebView` is highlighted in blue in the iOS simulator when the correct **0.0.0.0** entry is selected.

![Safari Develop Simulator open showing two entries for "0.0.0.0" with the second entry selected because it highlights the BlazorWebView in the Visual Studio emulator UI.](~/blazor/hybrid/handle-errors/_static/ios.png)

1. The **Web Inspector** window appears for the `BlazorWebView`.
1. Developer tools provide a variety of features for working with apps, including which assets the page requested, how long assets took to load, and the content of loaded assets. The following example shows the **Console** tab, which includes any exception messages generated by the framework or developer code:

![Safari Web Inspector and Simulator windows for a Blazor Hybrid app running on an emulated iPad mini](~/blazor/hybrid/handle-errors/_static/safari1.png)

:::zone-end

:::zone pivot="macos"

Using browser developer tools with Mac Catalyst applications isn't currently supported. Please use the guidance for [iOS](?pivots=ios) applications, as the behavior should be similar between the two platforms..

<!--
To use Safari developer tools with a macOS app:

1. Open desktop Safari.
1. Select the **Preferences** > **Advanced** > **Show Develop** menu item.
1. Run the .NET MAUI Blazor app in the macOS simulator.
1. Return to desktop Safari. Select **Develop** > **Simulator** > **0.0.0.0**. If multiple entries for **0.0.0.0** are present, select the entry that highlights the `BlazorWebView`. The `BlazorWebView` is highlighted in blue in the macOS simulator when the correct **0.0.0.0** entry is selected.
1. The **Web Inspector** window appears for the `BlazorWebView`.
1. Developer tools provide a variety of features for working with apps, including which assets the page requested, how long assets took to load, and the content of loaded assets. The following example shows the **Console** tab, which includes any exception messages generated by the framework or developer code:

![Safari Web Inspector for a Blazor Hybrid app](~/blazor/hybrid/handle-errors/_static/safari2.png)

-->

:::zone-end
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions aspnetcore/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,8 @@ items:
uid: blazor/hybrid/tutorials/wpf
- name: Routing and navigation
uid: blazor/hybrid/routing
- name: Handle errors
uid: blazor/hybrid/handle-errors
- name: Project structure
uid: blazor/project-structure
- name: Fundamentals
Expand Down
12 changes: 12 additions & 0 deletions aspnetcore/zone-pivot-groups.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,15 @@ groups:
title: Blazor Server
- id: webassembly
title: Blazor WebAssembly
- id: blazor-hybrid-operating-systems
title: Operating System
prompt: Target operating system
pivots:
- id: android
title: Android
- id: ios
title: iOS
- id: macos
title: macOS
- id: windows
title: Windows