許可サイト以外のアクセスはデフォルトのGoogle Chromeなどで開くようにしたいと思っています。
以下のコードでtarget=”_blank”ではない、webview2内で開くリンクは判定できました。
#####target=”_blank”以外のリンク制御ができたコード
C#
1 private void webview2_NavigationStarting(object sender, CoreWebView2NavigationStartingEventArgs e) 2 { 3 if (!e.Uri.Contains("許可サイトのURL")) 4 { 5 MessageBox.Show("許可サイトではありません。\r\nデフォルトブラウザで開きます。"); 6 Process.Start(e.Uri); // デフォルトブラウザで開く 7 e.Cancel = true; // webview2内でのアクセスをキャンセル 8 return; 9 } 10 }
target=”_blank”のリンクも同様に許可サイト以外はデフォルトブラウザで開く方法はないでしょうか。
(試してませんが)これがそれなんじゃないですかね?
hogebrowser.CoreWebView2.NewWindowRequested +=
[CoreWebView2.NewWindowRequested Event (Microsoft.Web.WebView2.Core) | Microsoft Docs](https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2.newwindowrequested
ありがとうございます。
NewWindowRequestedの方はtarget=”_blank”で反応はしてくれましたが、e.Cancelがなく、参考サイトの通りe.NewWindow.Stopで試しましたが、CTRL+Clickと右クリックの新しいウィンドウで開く場合は制御できましたが、普通にクリックするとWebView2の中で開いてしまいました。
参考サイト
https://qiita.com/NagaJun/items/4925a63ce7b93b80639e
参考サイトではWindowのサイズを何やらやってるようですが、そこまでは検証できてません。サイズも監視したら制御できるようになりますかね。。
ちょっと時間がなくて、今夜やれたらやってみようと思います。。
取り急ぎ現状報告でしたっ
これまた試していませんが^^;
e.Handled = true; なんじゃないですかね?
[CoreWebView2NewWindowRequestedEventArgs.Handled Property (Microsoft.Web.WebView2.Core) | Microsoft Docs](https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2newwindowrequestedeventargs.handled?view=webview2-dotnet-1.0.705.50#Microsoft_Web_WebView2_Core_CoreWebView2NewWindowRequestedEventArgs_Handled
GitHubで「CoreWebView2_NewWindowRequested」で検索してみたら、そうしている例がありました(WPFですが)
[wpf-webview2-only-display/MainWindow.xaml.cs at eea956dd8a8c4ce64e41cfed204dfbdeaa663d42 · noitaro/wpf-webview2-only-display](https://github.com/noitaro/wpf-webview2-only-display/blob/eea956dd8a8c4ce64e41cfed204dfbdeaa663d42/wpf-webview2/MainWindow.xaml.cs#L63
すごいできました!
なんという事でしょう!
ありがとうございます。
GitHubで検索しちゃうという手があるのですね。勉強になります。
気が付けばまたしてもTN8001さんにお世話になってました。(すぐ気が付かずすいません。。)
それでは自分で回答してクローズにさせていただきます。m(__)m
回答1件
あなたの回答
tips
プレビュー