async void InitializeWebViewAsync(WebView2 webView, SettingLoader setting) { if (setting != null) { string userDataPath = setting.Settings.UserDataPath; if (!System.IO.Directory.Exists(userDataPath)) { System.IO.Directory.CreateDirectory(userDataPath); } string argment = null; if (!string.IsNullOrEmpty(setting.Settings.CachePath)) { argment = $"--disk-cache-dir=\"{setting.Settings.CachePath}\""; } CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions(argment); var environment = await CoreWebView2Environment.CreateAsync(userDataFolder : userDataPath, options : options); await webView.EnsureCoreWebView2Async(environment); } webView.Source = new Uri(setting?.Settings.HomePage ?? "https://www.google.com"); WebViewController.sliderPan.ValueChanged += sliderPan_ValueChanged; WebViewController.sliderVolume.ValueChanged += sliderVolume_ValueChanged; webView.CoreWebView2.SourceChanged += CoreWebView2_SourceChanged; webView.CoreWebView2.NewWindowRequested += CoreWebView2_NewWindowRequested; }
private void MainForm_Load(object sender, EventArgs e) { var userDataDir = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "User Data"; var ua = "GoogleTV/CloudMoe-Version (DISKTOP; Windows NT " + Environment.OSVersion.Version.ToString() + "; Wired) Cobalt/" + runtimeVersion + " (unlike Gecko) html5_enable_androidtv_cobalt_widevine html5_enable_cobalt_experimental_vp9_decoder"; // var ua = "GoogleTV/10.0 (Windows NT 10.0; Cobalt; Wired) html5_enable_androidtv_cobalt_widevine html5_enable_cobalt_experimental_vp9_decoder"; //var ua = "Mozilla/5.0 (WINDOWS 10.0), GAME_XboxSeriesX/10.0.18363.7196 (Microsoft, Xbox Series X, Wired)"; //var ua = "Mozilla/5.0 (SMART-TV; Linux; Tizen 5.5) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/3.0 Chrome/69.0.3497.106 TV Safari/537.36"; //var ua = "Mozilla/5.0 (PlayStation 4 7.51) AppleWebKit/605.1.15 (KHTML, like Gecko)"; //var ua = "Mozilla/5.0 (Nintendo Switch; WebApplet) AppleWebKit/606.4 (KHTML, like Gecko) NF/6.0.1.16.10 NintendoBrowser/5.1.0.20923"; //var options = new CoreWebView2EnvironmentOptions("--disable-web-security --enable-features=msPlayReadyWin10 --user-agent=\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02\""); //var options = new CoreWebView2EnvironmentOptions("--enable-features=msMediaFoundationClearPlaybackWin10,msPlayReadyWin10 --user-agent=\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02\""); var options = new CoreWebView2EnvironmentOptions(startupArgs + "--allow-failed-policy-fetch-for-test --allow-running-insecure-content --disable-web-security --user-agent=\"" + ua + "\""); // Mozilla/5.0 (WINDOWS 10.0) Cobalt/19.lts.4.196747-gold (unlike Gecko) v8/6.5.254.43 gles Starboard/10, GAME_XboxOne/10.0.18363.7196 (Microsoft, XboxOne X, Wired) coreWebView2Environment = CoreWebView2Environment.CreateAsync(runtimePath, userDataDir, options).Result; splashScreenWebView = new WebView2(); screenWebView = new WebView2(); screenWebView.Enabled = false; screenWebViewPanel.Visible = false; splashScreenWebViewPanel.Visible = false; screenWebViewPanel.Controls.Add(screenWebView); splashScreenWebViewPanel.Controls.Add(splashScreenWebView); InitializeSplashScreenAsync(); }
private async void SetupBrowser() { CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("--proxy-server=\"localhost:8000\"", "ja"); CoreWebView2Environment env = await CoreWebView2Environment.CreateAsync(null, null, options); await LoginBrowser.EnsureCoreWebView2Async(env); }
private async Task InitializeWebView2() { var options = new CoreWebView2EnvironmentOptions(); options.AdditionalBrowserArguments = "--remote-debugging-port=8077"; var env = await CoreWebView2Environment.CreateAsync(null, null, options); await this.webView2Control.EnsureCoreWebView2Async(env); }
/// <summary> /// Webview2 初始化 /// </summary> /// <param name="webview">Microsoft.Web.WebView2.WinForms.WebView2</param> /// <param name="browserExecutableFolder">browserExecutableFolder</param> /// <param name="userDataFolder">userDataFolder</param> /// <param name="options">CoreWebView2EnvironmentOptions</param> /// <param name="func">Func</param> public async Task InitializeWebview2Async(Microsoft.Web.WebView2.WinForms.WebView2 webview, string browserExecutableFolder = null, string userDataFolder = null, CoreWebView2EnvironmentOptions options = null, Func <AppRuntime> func = null) { userDataFolder = userDataFolder ?? Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "UserData"); AppRuntime.RunTime.WebView2Environment = await CoreWebView2Environment.CreateAsync(browserExecutableFolder, userDataFolder, options); await webview.EnsureCoreWebView2Async(AppRuntime.RunTime.WebView2Environment); if (func != null) { webview.Invoke(func); } }
private async void IssueFileForm_Load(object sender, EventArgs e) { CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions() { AllowSingleSignOnUsingOSPrimaryAccount = true, }; CoreWebView2Environment environment = await CoreWebView2Environment.CreateAsync(null, _userDataFolder, options).ConfigureAwait(true); await this.fileIssueBrowser.EnsureCoreWebView2Async(environment).ConfigureAwait(true); this.fileIssueBrowser.NavigationCompleted += NavigationComplete; this.TopMost = makeTopMost; Navigate(this.Url); this.fileIssueBrowser.CoreWebView2.HistoryChanged += CoreWebView2_HistoryChanged; }
public BrowserInstance(BrowserInstanceSettings settings, string profilePath) { _settings = settings; _profilePath = profilePath; var webViewOptions = new CoreWebView2EnvironmentOptions("--disable-web-security"); _webView = new WebView2(); _webView.EnsureCoreWebView2Async( CoreWebView2Environment.CreateAsync(userDataFolder: $"UserDataFolder.{settings.Profile}", options: webViewOptions).GetAwaiter().GetResult()); _webView.NavigationCompleted += WebView_NavigationCompleted; _webView.NavigationStarting += WebView_NavigationStarting; _webView.CoreWebView2InitializationCompleted += WebView_CoreWebView2Ready; _webView.DefaultBackgroundColor = System.Drawing.Color.Transparent; LoadSettings(); _webView.Source = settings.Url; }
public async Task Init(Settings setting, MoeSite site) { Site = site; DataContext = setting; Closing += OnClosing; this.SetWindowFluent(setting); try { MainBrowser.CoreWebView2InitializationCompleted += MainBrowserOnCoreWebView2InitializationCompleted; if (MainBrowser == null) { return; } var option = new CoreWebView2EnvironmentOptions(); switch (NetOperator.GetProxyMode(setting, site.SiteSettings)) { case Settings.ProxyModeEnum.None: option.AdditionalBrowserArguments = "--no-proxy-server"; break; case Settings.ProxyModeEnum.Custom: option.AdditionalBrowserArguments = $"--proxy-server=http://{setting.ProxySetting}"; break; case Settings.ProxyModeEnum.Ie: break; } Environment = await CoreWebView2Environment.CreateAsync(null, App.AppDataDir, option); AuthButton.Click += AuthButtonOnClick; GoToLoginPageButton.Click += GoToLoginPageButtonOnClick; var _ = MainBrowser.EnsureCoreWebView2Async(Environment); } catch (Exception ex) { var result = MessageBox.Show(this, "未找到WebView2组件,需要下载吗?(需要Webview2组件才能显示网页登录界面)", App.DisplayName, MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { "https://go.microsoft.com/fwlink/p/?LinkId=2124703".GoUrl(); } Ex.Log(ex); Close(); } }
private void InitializeWebView() { // Create the cache directory string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); string cacheFolder = Path.Combine(localAppData, "WindowsFormsWebView2"); // CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("--disk-cache-size=1 "); CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("–incognito "); // Create the environment manually Task <CoreWebView2Environment> task = CoreWebView2Environment.CreateAsync(null, cacheFolder, options); // Do this so the task is continued on the UI Thread TaskScheduler ui = TaskScheduler.FromCurrentSynchronizationContext(); task.ContinueWith(t => { _environment = task.Result; // Create the web view 2 control and add it to the form. _webView2Control = new WebView2(); _webView2Control.Location = new System.Drawing.Point(0, 96); _webView2Control.Name = "webView2Control"; _webView2Control.Size = new System.Drawing.Size(788, 410); _webView2Control.TabIndex = 7; _webView2Control.Text = "webView2Control"; _webView2Control.CoreWebView2Ready += WebView2Control_CoreWebView2Ready; _webView2Control.NavigationStarting += WebView2Control_NavigationStarting; _webView2Control.NavigationCompleted += WebView2Control_NavigationCompleted; _webView2Control.SourceChanged += WebView2Control_SourceChanged; _webView2Control.KeyDown += WebView2Control_KeyDown; _webView2Control.KeyUp += WebView2Control_KeyUp; Controls.Add(_webView2Control); _webView2Control.EnsureCoreWebView2Async(_environment); }, ui); }
private async void InitializeWebView2Async() { // Gets or creates MyDoc\BlogWrite\ (same as database file) var myDocFolerPath = System.IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "BlogWrite"); System.IO.Directory.CreateDirectory(myDocFolerPath); // I really do hate smooth-scrolling. var op = new CoreWebView2EnvironmentOptions("--disable-smooth-scrolling"); _env = await CoreWebView2Environment.CreateAsync(userDataFolder : myDocFolerPath, options : op); //_env = await CoreWebView2Environment.CreateAsync(userDataFolder: System.IO.Path.Combine(System.IO.Path.GetTempPath(), "BlogWrite"), options: op); await ListViewContentPreviewWebBrowser.EnsureCoreWebView2Async(_env); ListViewContentPreviewWebBrowser.CoreWebView2InitializationCompleted += ListViewContentPreviewWebBrowser_InitializationCompleted; await InAppWebBrowser.EnsureCoreWebView2Async(_env); InAppWebBrowser.CoreWebView2InitializationCompleted += InAppWebBrowser_InitializationCompleted; }
private async System.Threading.Tasks.Task InitializeWebViewAsync() { // Create the cache directory string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); string cacheFolder = Path.Combine(localAppData, "FacetsDataWindowControlWebView2"); // CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("--disk-cache-size=1 "); CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("–incognito "); // Create the environment manually _environment = await CoreWebView2Environment.CreateAsync(null, cacheFolder, options); // Create the web view 2 control and add it to the form. _webView2Control = new WebView2(); _webView2Control.Name = "webView2Control"; _webView2Control.CoreWebView2Ready += _webView2Control_CoreWebView2Ready; _webView2Control.NavigationCompleted += _webView2Control_NavigationCompleted; dockPanel.Children.Add(_webView2Control); await _webView2Control.EnsureCoreWebView2Async(_environment); }
private async void InitializeBrowser(string version) { try { this.BrowserVersion = version; if (version == "WebView2") { if (!this._webView2Supported) { this.webBrowser2.CoreWebView2InitializationCompleted -= OnCoreWebView2InitializationCompleted; this.webBrowser2.CoreWebView2InitializationCompleted += OnCoreWebView2InitializationCompleted; CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions() { AllowSingleSignOnUsingOSPrimaryAccount = true }; CoreWebView2Environment environment = await CoreWebView2Environment.CreateAsync(userDataFolder : WebViewUserCache, options : options); await this.webBrowser2.EnsureCoreWebView2Async(environment); } } else { WebBrowserFallback(); } Reload(); } catch (Exception ex) { // fall back on old web browser control RaiseBrowserException(new WebView2Exception(ex.Message)); this.BrowserVersion = "WebBrowser"; this._settings["BrowserVersion"] = "WebBrowser"; WebBrowserFallback(); this._settings["WebView2Exception"] = ex.Message; } }