示例#1
0
        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;
        }
示例#2
0
        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();
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        /// <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);
            }
        }
示例#6
0
        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;
        }
示例#7
0
        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;
        }
示例#8
0
    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);
        }
示例#10
0
        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);
        }
示例#12
0
        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;
            }
        }