Własna przeglądarka internetowa (WebView2)
CHash
Priorytet: Normalny
Szkic
Zadanie 1002: Własna przeglądarka internetowa Chromium w C# (Windows Forms)
Cel
Stworzenie prostej przeglądarki internetowej wykorzystującej silnik Chromium (WebView2) w technologii Windows Forms (.NET).
Wymagania
- Visual Studio (2019 lub nowsze)
- Zainstalowany workload ".NET desktop development"
Instrukcja wykonania
1. Utworzenie projektu
- Otwórz Visual Studio.
- Wybierz Create a new project.
- Wyszukaj i wybierz szablon Windows Forms App (dla .NET, nie .NET Framework).
- Nazwij projekt np.
MyBrowseri kliknij Next, a następnie Create.
2. Instalacja pakietu WebView2
Silnik Chromium jest dostępny poprzez pakiet NuGet.
- W Solution Explorer kliknij prawym przyciskiem myszy na projekt.
- Wybierz Manage NuGet Packages....
- Przejdź do zakładki Browse.
- Wyszukaj Microsoft.Web.WebView2.
- Wybierz pakiet i kliknij Install.
3. Projektowanie interfejsu
- Otwórz widok projektanta formularza (
Form1.cs[Design]). - Z Toolbox (Przybornika) znajdź kontrolkę
WebView2(może być konieczne przebudowanie projektu, aby się pojawiła). - Przeciągnij
WebView2na formularz. - Ustaw właściwość
Dockkontrolki naFill, aby wypełniła całe okno.- Opcjonalnie: Dodaj na górę
Panel(Dock: Top), a w nimTextBox(pasek adresu) iButton(przycisk "Idź"), aby sterować nawigacją.
- Opcjonalnie: Dodaj na górę
4. Implementacja kodu (Form1.cs)
Kliknij dwukrotnie na formularz (lub wciśnij F7), aby przejść do kodu.
Poniżej znajduje się przykładowy kod, który inicjalizuje przeglądarkę i otwiera stronę startową.
using System;
using System.Windows.Forms;
using Microsoft.Web.WebView2.Core;
namespace MyBrowser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitializeAsync();
}
private async void InitializeAsync()
{
// Inicjalizacja środowiska WebView2
await webView21.EnsureCoreWebView2Async(null);
// Przejście do strony startowej
webView21.CoreWebView2.Navigate("https://www.google.com");
}
}
}
5. Dodatkowa funkcjonalność (Pasek adresu)
Jeśli dodałeś TextBox (np. txtAddress) i Button (np. btnGo), obsłuż zdarzenie kliknięcia przycisku:
private void btnGo_Click(object sender, EventArgs e)
{
if (webView21 != null && webView21.CoreWebView2 != null)
{
string url = txtAddress.Text;
if (!url.StartsWith("http://") && !url.StartsWith("https://"))
{
url = "https://" + url;
}
webView21.CoreWebView2.Navigate(url);
}
}
Uruchomienie
Skompiluj i uruchom aplikację (F5). Powinieneś zobaczyć okno z działającą przeglądarką opartą na Chromium.