Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) WebView bir uygulamada uzak web sayfaları, yerel HTML dosyaları ve HTML dizeleri görüntüler. WebView görüntülenen içerik, Basamaklı Stil Sayfaları (CSS) ve JavaScript desteği içerir. Varsayılan olarak, .NET MAUI projeleri bir WebView uzak bir web sayfasını görüntülemesi için gereken platform izinlerini içerir.
WebView aşağıdaki özellikleri tanımlar:
-
Cookies,
CookieContainer
türünde bir tanımlama bilgileri koleksiyonu için depolama sağlar. -
CanGoBacktüründe
bool
, kullanıcının önceki sayfalara gidip gitemeyeceğini gösterir. Bu salt okunur bir özelliktir. -
CanGoForwardtüründe
bool
, kullanıcının ileriye gidip gitemeyeceğini gösterir. Bu salt okunur bir özelliktir. -
Sourcetüründe
WebViewSource
, WebView görüntülediği konumu temsil eder. -
UserAgenttüründe
string
, kullanıcı aracısını temsil eder. Varsayılan değer, kullanılan platform tarayıcısının kullanıcı aracısıdır veya belirlenemezsenull
olarak ayarlanır.
Bu özellikler BindableProperty nesneler tarafından desteklenir; bu da veri bağlamalarının hedefleri olabileceği ve stillendirilebileceği anlamına gelir.
Source
özelliği, UrlWebViewSource
'ten türetilen bir HtmlWebViewSource
nesnesine ya da bir WebViewSource
nesnesine ayarlanabilir.
UrlWebViewSource
, URL ile belirtilen bir web sayfasını yüklemek için kullanılırken, yerel HTML dosyasını veya yerel HTML'yi yüklemek için HtmlWebViewSource
nesnesi kullanılır.
WebView, sayfa gezintisi başladığında tetiklenen bir Navigating
olayı ve sayfa gezintisi tamamlandığında tetiklenen bir Navigated
olayı tanımlar.
WebNavigatingEventArgs
olayına eşlik eden Navigating
nesnesi, gezintiyi iptal etmek için kullanılabilecek Cancel
türünde bir bool
özelliği tanımlar.
WebNavigatedEventArgs
olayına eşlik eden Navigated
nesnesi, gezinti sonucunu gösteren Result
türünde bir WebNavigationResult
özelliği tanımlar.
WebView aşağıdaki olayları tanımlar:
-
Navigating
, sayfa gezintisi başladığında tetiklenir. Bu olaya eşlik edenWebNavigatingEventArgs
nesnesi, gezintiyi iptal etmek için kullanılabilecekCancel
türünde birbool
özelliği tanımlar. -
Navigated
, sayfa gezintisi tamamlandığında oluşturulur. Bu olaya eşlik edenWebNavigatedEventArgs
nesnesi, gezinti sonucunu gösterenResult
türünde birWebNavigationResult
özelliği tanımlar. -
ProcessTerminated
, bir WebView işlemi beklenmedik bir şekilde sona erdiğinde ortaya çıkar. Bu olaya eşlik edenWebViewProcessTerminatedEventArgs
nesnesi, işlemin neden başarısız olduğunu gösteren platforma özgü özellikleri tanımlar.
Önemli
WebView, HeightRequest, WidthRequestveya HorizontalStackLayoutiçinde bulunduğunda StackLayout ve VerticalStackLayout özelliklerini belirtmelidir. Bu özellikleri belirtmezseniz, WebView görüntülenmeyecektir.
Web sayfası görüntüleme
Uzak bir web sayfasını görüntülemek için Source
özelliğini URI'yi belirten bir string
olarak ayarlayın:
<WebView Source="https://learn.microsoft.com/dotnet/maui" />
Eşdeğer C# kodu:
WebView webvView = new WebView
{
Source = "https://learn.microsoft.com/dotnet/maui"
};
URI'ler belirtilen protokolle tam olarak oluşturulmalıdır.
Not
Source
özelliği WebViewSource
türünde olmasına rağmen, özelliği dize tabanlı bir URI'ye ayarlanabilir. Bunun nedeni .NET MAUI'nin dize tabanlı URI'yi bir UrlWebViewSource
nesnesine dönüştüren bir tür dönüştürücüsü ve örtük dönüştürme işleci içermesidir.
iOS ve Mac Catalyst'te Uygulama Aktarım Güvenliğini Yapılandırma
Sürüm 9'dan bu yana iOS yalnızca uygulamanızın güvenli sunucularla iletişim kurmasına izin verir. Bir uygulamanın güvenli olmayan sunucularla iletişimi etkinleştirmeyi seçmesi gerekir.
Aşağıdaki Info.plist yapılandırması, belirli bir etki alanının Apple Aktarım Güvenliği (ATS) gereksinimlerini atlamak için nasıl etkinleştirileceği gösterilmektedir:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mydomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
Yalnızca belirli etki alanlarının ATS'yi atlamasına olanak tanımak ve güvenilir olmayan etki alanlarında ek güvenlikten yararlanırken güvenilen siteleri kullanmanıza olanak tanımak en iyi yöntemdir.
Aşağıdaki Info.plist yapılandırmasında, bir uygulama için ATS'nin nasıl devre dışı bırak yapılacağı gösterilmektedir:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Önemli
Uygulamanız güvenli olmayan bir web sitesine bağlantı gerektiriyorsa, NSExceptionDomains
anahtarını kullanarak ATS'yi tamamen kapatmak yerine NSAllowsArbitraryLoads
anahtarını kullanarak etki alanını her zaman özel durum olarak girmeniz gerekir.
Yerel HTML'i görüntüle
Satır içi HTML görüntülemek için Source
özelliğini bir HtmlWebViewSource
nesnesi olarak ayarlayın:
<WebView>
<WebView.Source>
<HtmlWebViewSource Html="<HTML><BODY><H1>.NET MAUI</H1><P>Welcome to WebView.</P></BODY><HTML>" />
</WebView.Source>
</WebView>
XAML'de html dizeleri, <
ve >
simgelerinden kaçış nedeniyle okunamaz hale gelebilir. Bu nedenle, daha fazla okunabilirlik sağlamak için HTML, CDATA
bir bölüm içine yerleştirilebilir.
<WebView>
<WebView.Source>
<HtmlWebViewSource>
<HtmlWebViewSource.Html>
<![CDATA[
<HTML>
<BODY>
<H1>.NET MAUI</H1>
<P>Welcome to WebView.</P>
</BODY>
</HTML>
]]>
</HtmlWebViewSource.Html>
</HtmlWebViewSource>
</WebView.Source>
</WebView>
Eşdeğer C# kodu:
WebView webView = new WebView
{
Source = new HtmlWebViewSource
{
Html = @"<HTML><BODY><H1>.NET MAUI</H1><P>Welcome to WebView.</P></BODY></HTML>"
}
};
Yerel HTML dosyası görüntüleme
Yerel html dosyasını görüntülemek için, dosyayı uygulama projenizin HtmlWebViewSource
özelliğinin değeri olarak ayarlanmış bir Source
nesnesinde tanımlanan satır içi HTML'den yüklenebilir:
<WebView>
<WebView.Source>
<HtmlWebViewSource>
<HtmlWebViewSource.Html>
<![CDATA[
<html>
<head>
</head>
<body>
<h1>.NET MAUI</h1>
<p>The CSS and image are loaded from local files!</p>
<p><a href="localfile.html">next page</a></p>
</body>
</html>
]]>
</HtmlWebViewSource.Html>
</HtmlWebViewSource>
</WebView.Source>
</WebView>
Yerel HTML dosyası, Basamaklı Stil Sayfaları (CSS), JavaScript ve görüntüleri yükleyebilir, eğer bu dosyalar MauiAsset derleme eylemiyle de uygulama projenize eklendiyse.
Ham varlıklar hakkında daha fazla bilgi için bkz. ham varlıklar.
İçeriği yeniden yükleme
WebView kaynağını yeniden yüklemek için çağrılabilen bir Reload
yöntemi vardır:
WebView webView = new WebView();
...
webView.Reload();
Reload
yöntemi çağrıldığında, geçerli içeriği yeniden yüklemek için bir istekte bulunulduğunu belirten ReloadRequested
olayı tetiklenir.
Navigasyon yapma
WebView, GoBack
ve GoForward
yöntemleriyle programlı gezintiyi destekler. Bu yöntemler, WebView sayfa yığınında gezinmeyi etkinleştirir ve yalnızca CanGoBack
ve CanGoForward
özelliklerinin değerleri incelendikten sonra çağrılmalıdır:
WebView webView = new WebView();
...
// Go backwards, if allowed.
if (webView.CanGoBack)
{
webView.GoBack();
}
// Go forwards, if allowed.
if (webView.CanGoForward)
{
webView.GoForward();
}
Bir WebViewsayfasında gezinti gerçekleştiğinde, bu işlem program aracılığıyla veya kullanıcı tarafından başlatılmış olsun, aşağıdaki olaylar meydana gelir:
-
Navigating
, sayfa gezintisi başladığında tetiklenen bir olaydır.WebNavigatingEventArgs
olayına eşlik edenNavigating
nesnesi, gezintiyi iptal etmek için kullanılabilecekCancel
türünde birbool
özelliği tanımlar. - sayfa gezintisi tamamlandığında tetiklenen
Navigated
.WebNavigatedEventArgs
olayına eşlik edenNavigated
nesnesi, gezinti sonucunu gösterenResult
türünde birWebNavigationResult
özelliği tanımlar.
Android'de yeni bir Pencere açan içeriğe gidin
Android'de, içeriği yeni bir pencerede açmak için target="_blank"
belirten bir köprüye basıldığında, WebView gezinti gerçekleşmez. Bunun nedeni, yeni bir pencerede köprü açmanın OnCreateWindow uygulanmasını gerektirmesi ve .NET MAUI'nin bunu gerektirmemesidir. Bu nedenle, bu senaryo için kendiniz OnCreateWindow uygulamaya, URL'yi sistem tarayıcısında açmaya veya başka bir şey yapmaya karar vermeniz gerekir.
Alternatif olarak, uygulamanızdaki WebViewHandler
'i değiştirerek tüm köprülerin aynı WebView'da açılmasını sağlayabilir ve yerel WebView'nin birden çok pencere desteğini devre dışı bırakmasını yapabilirsiniz.
#if ANDROID
Microsoft.Maui.Handlers.WebViewHandler.Mapper.AppendToMapping("SupportMultipleWindows", (handler, view) =>
{
handler.PlatformView.Settings.SetSupportMultipleWindows(false);
});
#endif
Bu kod, Android'deki WebViewHandler
için özellik eşleyicisini false
bağımsız değişkeniyle SetSupportMultipleWindows yöntemini çağırarak özelleştirir ve bu işlem, kullanıcının target="_blank"
belirten bir köprüye gitmeden önce yürütülmelidir. İşleyiciler hakkında daha fazla bilgi için bkz: İşleyiciler.
Android'de izinleri işleme
Cihazın kamera veya mikrofon gibi kayıt donanımına erişim isteyen bir sayfaya göz atarken, WebView denetimi tarafından izin verilmelidir.
WebView
denetimi, izin isteklerine tepki vermek için Android'de Android.Webkit.WebChromeClient türünü kullanır. Ancak, .NET MAUI tarafından sağlanan WebChromeClient
uygulaması izin isteklerini yoksayar.
MauiWebChromeClient
'den devralan ve izin isteklerini onaylayan yeni bir tür oluşturmanız gerekir.
Önemli
İzin isteklerini onaylamak için bu yaklaşımı kullanarak WebView
özelleştirmek için Android API 26 veya üzeri gerekir.
Bir web sayfasından WebView
denetimine yönelik izin istekleri, .NET MAUI uygulamasından kullanıcıya yapılan izin isteklerinden farklıdır. .NET MAUI uygulama izinleri, tüm uygulama için kullanıcı tarafından istenir ve onaylanır.
WebView
denetimi, uygulamaların donanıma erişme yeteneğine bağlıdır. Bu kavramı göstermek için cihazın kamerasına erişim isteyen bir web sayfası düşünün. bu istek WebView
denetimi tarafından onaylanmış olsa bile. .NET MAUI uygulaması kameraya erişmek için kullanıcı tarafından onay almamış olsa da web sayfası kameraya erişemez.
Aşağıdaki adımlar, kamerayı kullanmak için WebView
denetiminden gelen izin isteklerinin nasıl yakalandığını gösterir. Mikrofonu kullanmaya çalışıyorsanız, kamerayla ilgili izinler yerine mikrofonla ilgili izinleri kullanmanız dışında adımlar benzer olacaktır.
İlk olarak, Android bildirimine gerekli uygulama izinlerini ekleyin. Platformları/Android/AndroidManifest.xml dosyasını açın ve
manifest
düğümüne aşağıdakileri ekleyin:<uses-permission android:name="android.permission.CAMERA" />
Uygulamanızın bir noktasında, örneğin
WebView
denetimi içeren sayfa yüklendiğinde, kullanıcıdan uygulamanın kameraya erişmesine izin vermek için izin isteyin.private async Task RequestCameraPermission() { PermissionStatus status = await Permissions.CheckStatusAsync<Permissions.Camera>(); if (status != PermissionStatus.Granted) await Permissions.RequestAsync<Permissions.Camera>(); }
Kök ad alanını projenizin ad alanıyla eşleşecek şekilde değiştirerek Platformlar/Android klasörüne aşağıdaki sınıfı ekleyin (ad alanına
.Platforms.Android
eklemeyin):using Android.Webkit; using Microsoft.Maui.Handlers; using Microsoft.Maui.Platform; namespace MauiAppWebViewHandlers.Platforms.Android; internal class MyWebChromeClient: MauiWebChromeClient { public MyWebChromeClient(IWebViewHandler handler) : base(handler) { } public override void OnPermissionRequest(PermissionRequest request) { // Process each request foreach (var resource in request.GetResources()) { // Check if the web page is requesting permission to the camera if (resource.Equals(PermissionRequest.ResourceVideoCapture, StringComparison.OrdinalIgnoreCase)) { // Get the status of the .NET MAUI app's access to the camera PermissionStatus status = Permissions.CheckStatusAsync<Permissions.Camera>().Result; // Deny the web page's request if the app's access to the camera is not "Granted" if (status != PermissionStatus.Granted) request.Deny(); else request.Grant(request.GetResources()); return; } } base.OnPermissionRequest(request); } }
Önceki kod parçacığında,
MyWebChromeClient
sınıfıMauiWebChromeClient
'den devralır ve web sayfası izin isteklerini kesmek içinOnPermissionRequest
yöntemini geçersiz kılar. Her izin öğesi, kamerayı temsil edenPermissionRequest.ResourceVideoCapture
dizesi sabiti ile eşleşip eşleşmediğini görmek için denetlenir. Bir kamera izni eşleşirse kod, uygulamanın kamerayı kullanma izni olup olmadığını denetler. İzin verildiğinde, web sayfasının isteği kabul edilir.Chrome istemcisini SetWebChromeClientolarak ayarlamak için Android'in
WebView
denetimindekiMyWebChromeClient
yöntemini kullanın. Aşağıdaki iki öğe, chrome istemcisini nasıl ayarlayabileceğinizi gösterir:WebView
adlı bir .NET MAUItheWebViewControl
denetimi verildiğinde chrome istemcisini doğrudan Android denetimi olan platform görünümünde ayarlayabilirsiniz:((IWebViewHandler)theWebViewControl.Handler).PlatformView.SetWebChromeClient(new MyWebChromeClient((IWebViewHandler)theWebViewControl.Handler));
Ayrıca, tüm
WebView
denetimlerini chrome istemcinizi kullanmaya zorlamak için işleyici özellik eşlemesini de kullanabilirsiniz. Daha fazla bilgi için bkz. İşleyicileri.Uygulama başlatıldığında aşağıdaki kod parçacığının
CustomizeWebViewHandler
yöntemi çağrılmalıdır, örneğinMauiProgram.CreateMauiApp
yönteminde.private static void CustomizeWebViewHandler() { #if ANDROID26_0_OR_GREATER Microsoft.Maui.Handlers.WebViewHandler.Mapper.ModifyMapping( nameof(Android.Webkit.WebView.WebChromeClient), (handler, view, args) => handler.PlatformView.SetWebChromeClient(new MyWebChromeClient(handler))); #endif }
Çerezleri ayarla
Tanımlama bilgileri, belirtilen URL'ye web isteğiyle gönderilmeleri için bir WebView üzerine ayarlanabilir.
Cookie
nesnelerini bir CookieContainer
'e ekleyerek çerezleri ayarlayın ve ardından konteyneri, WebView.Cookies
bağlanabilir özelliğin değeri olarak ayarlayın. Aşağıdaki kodda bir örnek gösterilmektedir:
using System.Net;
CookieContainer cookieContainer = new CookieContainer();
Uri uri = new Uri("https://learn.microsoft.com/dotnet/maui", UriKind.RelativeOrAbsolute);
Cookie cookie = new Cookie
{
Name = "DotNetMAUICookie",
Expires = DateTime.Now.AddDays(1),
Value = "My cookie",
Domain = uri.Host,
Path = "/"
};
cookieContainer.Add(uri, cookie);
webView.Cookies = cookieContainer;
webView.Source = new UrlWebViewSource { Url = uri.ToString() };
Bu örnekte, Cookie
nesnesine tek bir CookieContainer
eklenir ve bu da WebView.Cookies
özelliğinin değeri olarak ayarlanır.
WebView belirtilen URL'ye bir web talebi gönderdiğinde, tanımlama bilgisi taleple birlikte gönderilir.
JavaScript'i çağırma
WebView C# dilinden bir JavaScript işlevi çağırma ve C# kodunu çağıran herhangi bir sonuç döndürme özelliğini içerir. Bu birlikte çalışma, aşağıdaki örnekte gösterilen EvaluateJavaScriptAsync
yöntemiyle gerçekleştirilir:
Entry numberEntry = new Entry { Text = "5" };
Label resultLabel = new Label();
WebView webView = new WebView();
...
int number = int.Parse(numberEntry.Text);
string result = await webView.EvaluateJavaScriptAsync($"factorial({number})");
resultLabel.Text = $"Factorial of {number} is {result}.";
WebView.EvaluateJavaScriptAsync
yöntemi, bağımsız değişken olarak belirtilen JavaScript'i değerlendirir ve herhangi bir sonucu string
olarak döndürür. Bu örnekte, sonuç olarak factorial
faktöriyelini döndüren number
JavaScript işlevi çağrılır. Bu JavaScript işlevi, WebView tarafından yüklenen yerel HTML dosyasında tanımlanır ve aşağıdaki örnekte gösterilmiştir:
<html>
<body>
<script type="text/javascript">
function factorial(num) {
if (num === 0 || num === 1)
return 1;
for (var i = num - 1; i >= 1; i--) {
num *= i;
}
return num;
}
</script>
</body>
</html>
iOS ve Mac Catalyst üzerinde yerel WebView'ı yapılandırma
iOS ve Mac Catalyst'te yerel WebView denetimi, MauiWKWebView
'den türetilen bir WKWebView
'dir.
MauiWKWebView
oluşturucu aşırı yüklemelerinden biri, WKWebViewConfiguration
nesnesinin nasıl yapılandırılacağı hakkında bilgi sağlayan WKWebView
nesnesinin belirtilmesine olanak tanır. Tipik yapılandırmalar, kullanıcı aracısını ayarlamayı, web içeriğinizin kullanımına sunulacak tanımlama bilgilerini belirtmeyi ve web içeriğinize özel betikler eklemeyi içerir.
Uygulamanızda bir WKWebViewConfiguration
nesnesi oluşturabilir ve ardından özelliklerini gerektiği gibi yapılandırabilirsiniz. Alternatif olarak, .NET MAUI'nin MauiWKWebView.CreateConfiguration
nesnesini almak ve sonra değiştirmek için statik WKWebViewConfiguration
yöntemini çağırabilirsiniz.
WKWebViewConfiguration
nesnesi, ardından MauiWKWebView
oluşturucu aşırı yüklemesinde bir bağımsız değişken olarak belirtilebilir.
İşleyicinin platform görünümü oluşturulduktan sonra iOS ve Mac Catalyst'te yerel WebView yapılandırması değiştirilemeyeceğinden, bunu değiştirmek için özel bir işleyici fabrikası temsilcisi oluşturmanız gerekir.
#if IOS || MACCATALYST
using WebKit;
using CoreGraphics;
using Microsoft.Maui.Platform;
using Microsoft.Maui.Handlers;
#endif
...
#if IOS || MACCATALYST
Microsoft.Maui.Handlers.WebViewHandler.PlatformViewFactory = (handler) =>
{
WKWebViewConfiguration config = MauiWKWebView.CreateConfiguration();
config.ApplicationNameForUserAgent = "MyProduct/1.0.0";
return new MauiWKWebView(CGRect.Empty, (WebViewHandler)handler, config);
};
#endif
Not
MauiWKWebView
'ı, uygulamanızda bir WKWebViewConfiguration
görüntülenmeden önce bir WebView nesnesiyle yapılandırmanız gerekir. Bunu yapmak için uygun konumlar, MauiProgram.cs veya App.xaml.csgibi uygulamanızın başlangıç yolunda bulunur.
iOS ve Mac Catalyst'te medya oynatma tercihlerini ayarla
HTML5 videosunun satır içi oynatımı, otomatik oynatma ve resim içinde resim özellikleri de dahil olmak üzere, iOS ve Mac Catalyst'teki WebView için varsayılan olarak etkindir. Bu varsayılanı değiştirmek veya diğer medya oynatma tercihlerini ayarlamak için, işleyicinin platform görünümü oluşturulduktan sonra medya oynatma tercihleri değiştirilemeyeceğinden özel bir işleyici fabrikası temsilcisi oluşturmanız gerekir. Aşağıdaki kodda bunun bir örneği gösterilmektedir:
#if IOS || MACCATALYST
using WebKit;
using CoreGraphics;
using Microsoft.Maui.Platform;
using Microsoft.Maui.Handlers;
#endif
...
#if IOS || MACCATALYST
Microsoft.Maui.Handlers.WebViewHandler.PlatformViewFactory = (handler) =>
{
WKWebViewConfiguration config = MauiWKWebView.CreateConfiguration();
// True to play HTML5 videos inliine, false to use the native full-screen controller.
config.AllowsInlineMediaPlayback = false;
// True to play videos over AirPlay, otherwise false.
config.AllowsAirPlayForMediaPlayback = false;
// True to let HTML5 videos play Picture in Picture.
config.AllowsPictureInPictureMediaPlayback = false;
// Media types that require a user gesture to begin playing.
config.MediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypes.All;
return new MauiWKWebView(CGRect.Empty, (WebViewHandler)handler, config);
};
#endif
iOS'ta WebView yapılandırma hakkında daha fazla bilgi için bkz. iOS ve Mac Catalyst'teki yerel WebView'i yapılandırma.
Mac'te WebView Catalyst'i inceleme
Mac Catalyst'te bir WebView içeriğini incelemek üzere Safari geliştirici araçlarını kullanmak için aşağıdaki kodu uygulamanıza ekleyin:
#if MACCATALYST
Microsoft.Maui.Handlers.WebViewHandler.Mapper.AppendToMapping("Inspect", (handler, view) =>
{
if (OperatingSystem.IsMacCatalystVersionAtLeast(16, 6))
handler.PlatformView.Inspectable = true;
});
#endif
Bu kod, Mac Catalyst'te WebViewHandler
için özellik eşleyicisini özelleştirerek WebView içeriği Safari geliştirici araçları tarafından denetlenebilir hale getirir. İşleyiciler hakkında daha fazla bilgi için bkz: İşleyiciler.
Safari geliştirici araçlarını Mac Catalyst uygulamasıyla kullanmak için:
- Mac bilgisayarınızda Safari'i açın.
- Safari'de, Safari > Ayarları > Gelişmiş > Menü çubuğunda Geliştir menüsünü göster onay kutusunu seçin.
- .NET MAUI Mac Catalyst uygulamanızı çalıştırın.
- Safari'de > Geliştir {Cihaz adı} menüsünü seçin; burada
{Device name}
yer tutucusuMacbook Pro
gibi cihazınızın adıdır. Ardından uygulama adınızın altındaki girdiyi seçerek çalışan uygulamanızı da vurgulayabilirsiniz. Bu, Web denetçisi penceresinin görünmesine neden olur.
Sistem tarayıcısını başlatma
Launcher
tarafından sağlanan Microsoft.Maui.Essentials
sınıfıyla sistem web tarayıcısında bir URI açmak mümkündür. Başlatıcının OpenAsync
yöntemini çağırın ve açılacak URI'yi temsil eden bir string
veya Uri
bağımsız değişkeni geçirin:
await Launcher.OpenAsync("https://learn.microsoft.com/dotnet/maui");
Daha fazla bilgi için bkz. Launcher.