如何在UWP開發(fā)中防止WebView自動打開瀏覽器
在UWP開發(fā)中,WebView控件是一個非常實用的組件。它可以很方便地加載網(wǎng)頁并在應用內(nèi)顯示,但是一些時候,它會自動打開瀏覽器來顯示新頁面請求,這可能不是我們想要的。本文將介紹如何添加WebView的
在UWP開發(fā)中,WebView控件是一個非常實用的組件。它可以很方便地加載網(wǎng)頁并在應用內(nèi)顯示,但是一些時候,它會自動打開瀏覽器來顯示新頁面請求,這可能不是我們想要的。本文將介紹如何添加WebView的新頁面請求事件處理函數(shù),以防止瀏覽器的打開。
創(chuàng)建WebView控件
首先,在XAML界面中創(chuàng)建一個名為“webViewMain”的WebView控件。這樣我們就可以在代碼中對其進行操作。
指定WebView打開特定頁面
在代碼中使用Navigate函數(shù)即可指定WebView打開特定頁面。這個函數(shù)只需要傳入一個Uri參數(shù)即可。WebView控件內(nèi)部有javascript runtime和cookie處理機制,通常不需要額外設置。
(new Uri(""));
添加新頁面請求事件處理函數(shù)
WebView控件有許多EventHandler,我們需要關注的是NewWindowRequested事件。為了防止自動打開瀏覽器,我們需要給這個事件添加一個處理函數(shù)。
WebViewMain_NewWindowRequested;
在事件處理函數(shù)中,我們需要將args.Handled設置為true,表示該事件已經(jīng)被處理完成,不再繼續(xù)處理,即不再打開瀏覽器。
private void WebViewMain_NewWindowRequested(WebView sender, WebViewNewWindowRequestedEventArgs args)
{
args.Handled true;
}
自定義請求消息
如果需要自定義referrer,我們可以使用NavigateWithHttpRequestMessage函數(shù)按照給定的請求消息發(fā)出請求。下面是示例代碼:
var requestMsg new HttpRequestMessage(, new Uri(""));
("Referer", "");
(requestMsg);
運行效果
現(xiàn)在,我們已經(jīng)成功地阻止了WebView自動打開瀏覽器。點擊鏈接時,頁面會在WebView內(nèi)部繼續(xù)導航。
結論
在UWP開發(fā)中,使用WebView控件可以很方便地加載網(wǎng)頁并在應用內(nèi)顯示。但有時需要阻止WebView自動打開瀏覽器,我們可以通過添加新頁面請求事件處理函數(shù)來實現(xiàn)。