Exemple #1
0
        private void Webview_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            var requestUri = new Uri(e.Request.Uri);
            var host       = new Uri(requestUri.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped));

            if (host != customHost)
            {
                return;
            }

            try
            {
                var contentStream = Application.ContentProvider.GetStreamAsync(requestUri).GetAwaiter().GetResult();
                if (contentStream == null)
                {
                    e.Response = webView2Environment.CreateWebResourceResponse(null, 404, "Not Found", string.Empty);
                    return;
                }

                var mimeType = Application.ContentProvider.GetMimeType(requestUri);
                e.Response = webView2Environment.CreateWebResourceResponse(contentStream, 200, "OK", $"Content-Type: {mimeType}");
            }
            catch (Exception ex)
            {
                e.Response = webView2Environment.CreateWebResourceResponse(null, 500, ex.Message, string.Empty);
            }
        }
Exemple #2
0
        private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            var myUri = new Uri("https://music.youtube.com/");

            if (myUri.IsBaseOf(e.Request.RequestUri))
            {
                string  json = JsonConvert.SerializeObject(e.Request.Headers);
                dynamic obj  = JsonConvert.DeserializeObject(json);

                try
                {
                    string cookieValue = obj[1].Value[0].ToString();

                    if (cookieValue.Contains("VISITOR_INFO1_LIVE") &&
                        cookieValue.Contains("SID") &&
                        cookieValue.Contains("__Secure") &&
                        cookieValue.Contains("LOGIN_INFO"))
                    {
                        MainForm.Settings.AuthenticationCookie = cookieValue;
                        Task.Run(async() => await MainForm.Settings.Save());

                        lblSignInMessage.Visible  = false;
                        pbConnectSuccess.Visible  = true;
                        lblConnectSuccess.Visible = true;
                    }
                }
                catch { }
            }
        }
Exemple #3
0
        private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            Console.WriteLine(e.Request.Uri);
            if (e.Request.Uri == "https://www.gstatic.com/ytlr/txt/licenses_googletv.txt")
            {
                var stream = GenerateStreamFromString(Resource.Staff.Replace("\n", "\n\u200B"));
                e.Response = coreWebView2Environment.CreateWebResourceResponse(stream, 200, "OK", "Content-Type: text/html");
                new Thread(() =>
                {
                    Thread.Sleep(3000); // 流资源 3000ms 后释放
                    var action = new Action(() =>
                    {
                        stream.Close();
                    });

                    if (InvokeRequired)
                    {
                        Invoke(action);
                    }
                    else
                    {
                        action();
                    }
                }).Start();
            }
        }
Exemple #4
0
        /// <summary>
        /// Embedded Resources 请求事件
        /// </summary>
        /// <param name="e">CoreWebView2WebResourceRequestedEventArgs</param>
        public static void LocalResourcesRequested(CoreWebView2WebResourceRequestedEventArgs e)
        {
            var    domain       = string.Empty;
            var    dir          = string.Empty;
            string assemblyPath = null;

            foreach (var resourcesHandler in AppRuntime.RunTime.LocalResourcesHandlers.Where(resourcesHandler => Regex.IsMatch(e.Request.Uri, @"^" + resourcesHandler.uri + "/{0,}.*", RegexOptions.IgnoreCase)))
            {
                domain       = resourcesHandler.uri;
                dir          = resourcesHandler.dir;
                assemblyPath = Path.GetDirectoryName(resourcesHandler.resource.Location);
                break;
            }

            // 判断是否满足嵌入资源拦截
            if (!string.IsNullOrWhiteSpace(domain) && !string.IsNullOrWhiteSpace(assemblyPath))
            {
                // 提取域名之后的取资源路径
                var resourcePath = Regex.Replace(e.Request.Uri, @"^" + domain + "/{0,}", string.Empty);

                // 剔除路径的参数, 提取资源路径
                resourcePath = Regex.Replace(resourcePath, @"\?.*", string.Empty).ToLower();

                var memiType = new Uri(e.Request.Uri).MimeType();
                var fileInfo = new FileInfo($"{assemblyPath}.{dir}.{resourcePath}");
                if (fileInfo.Exists)
                {
                    var stream = fileInfo.OpenRead();
                    if (stream != null)
                    {
                        e.Response = Resource(stream, memiType);
                    }
                }
            }
        }
Exemple #5
0
        public async void ShouldInterceptRequest(CoreWebView2 view, CoreWebView2WebResourceRequestedEventArgs args)
        {
            //var uri = args.Request.RequestUri;
            var uri = new Uri(args.Request.Uri);
            int index;

            // walk up our multipart/related stack looking for the MIME part for the requested URL
            for (int i = stack.Count - 1; i >= 0; i--)
            {
                var related = stack[i];

                if ((index = related.IndexOf(uri)) == -1)
                {
                    continue;
                }

                if (related[index] is MimePart part)
                {
                    var mimeType = part.ContentType.MimeType;
                    var charset  = part.ContentType.Charset;
                    var stream   = part.Content.Open();

                    // construct our response containing the decoded content
                    // https://stackoverflow.com/questions/7669311/is-there-a-way-to-convert-a-system-io-stream-to-a-windows-storage-streams-irando
                    var memStream = new MemoryStream();
                    await stream.CopyToAsync(memStream);

                    memStream.Position = 0;
                    args.Response      = view.Environment.CreateWebResourceResponse(memStream.AsRandomAccessStream(), 200, "OK", $"Content-Type: {mimeType}; charset={charset}");
                }
            }
        }
Exemple #6
0
        private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            var responseStream      = File.OpenRead(@"c:\\test.png");
            var responseContentType = "image/png";

            var eventType  = e.GetType();
            var field      = eventType.GetField("_nativeCoreWebView2WebResourceRequestedEventArgs", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            var nativeArgs = field.GetValue(e);

            field = _webView2Environment.GetType().GetField("_nativeCoreWebView2Environment", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            var nativeEnvironment = field.GetValue(_webView2Environment);

            var managedStream = Activator.CreateInstance(eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.ManagedIStream"),
                                                         System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance,
                                                         null,
                                                         new object[] { responseStream },
                                                         null);

            var createWebSourceResponseMethod = eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Environment").GetMethod("CreateWebResourceResponse", new Type[] { Type.GetType("System.Runtime.InteropServices.ComTypes.IStream"), typeof(int), typeof(string), typeof(string) });
            var response = createWebSourceResponseMethod.Invoke(nativeEnvironment, new object[] { managedStream, 200, "OK", $"Content-Type: {responseContentType}" });

            var responseProperty = eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.Raw.ICoreWebView2WebResourceRequestedEventArgs").GetProperty("Response");

            responseProperty.SetValue(nativeArgs, response);
        }
        private void BrowserWebResourceRequestedAsync(object sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            var coreWebView2 = (CoreWebView2)sender;

            Action <ResourceResponse, CoreWebView2Deferral> callback = (ResourceResponse resourceResponse, CoreWebView2Deferral deferral) =>
            {
                try
                {
                    var response = coreWebView2.Environment
                                   .CreateWebResourceResponse(resourceResponse.Stream,
                                                              resourceResponse.StatusCode,
                                                              resourceResponse.ReasonPhrase,
                                                              resourceResponse.GetHeaderString());
                    if (response != null)
                    {
                        e.Response = response;
                    }
                }
                catch (Exception exception)
                {
                    Console.WriteLine(exception.Message);
                    Console.WriteLine(exception.StackTrace);
                }
                finally
                {
                    deferral?.Complete();
                    deferral = null;
                }
            };


            var request = new ResourceRequest(e.Request.Uri, e.Request.Method, e.Request.Headers, e.Request.Content);

            _owinResourceHandler.ProcessRequest(request, e.GetDeferral(), callback);
        }
        protected override async Task HandleWebResourceRequest(CoreWebView2WebResourceRequestedEventArgs eventArgs)
        {
            // Unlike server-side code, we get told exactly why the browser is making the request,
            // so we can be smarter about fallback. We can ensure that 'fetch' requests never result
            // in fallback, for example.
            var allowFallbackOnHostPage =
                eventArgs.ResourceContext == CoreWebView2WebResourceContext.Document ||
                eventArgs.ResourceContext == CoreWebView2WebResourceContext.Other;                 // e.g., dev tools requesting page source

            // Get a deferral object so that WebView2 knows there's some async stuff going on. We call Complete() at the end of this method.
            using var deferral = eventArgs.GetDeferral();

            var requestUri = QueryStringHelper.RemovePossibleQueryString(eventArgs.Request.Uri);

            // First, call into WebViewManager to see if it has a framework file for this request. It will
            // fall back to an IFileProvider, but on WinUI it's always a NullFileProvider, so that will never
            // return a file.
            if (TryGetResponseContent(requestUri, allowFallbackOnHostPage, out var statusCode, out var statusMessage, out var content, out var headers) &&
                statusCode != 404)
            {
                // NOTE: This is stream copying is to work around a hanging bug in WinRT with managed streams.
                // See issue https://github.com/microsoft/CsWinRT/issues/670
                var memStream = new MemoryStream();
                content.CopyTo(memStream);
                var ms = new InMemoryRandomAccessStream();
                await ms.WriteAsync(memStream.GetWindowsRuntimeBuffer());

                var headerString = GetHeaderString(headers);
                eventArgs.Response = _coreWebView2Environment !.CreateWebResourceResponse(ms, statusCode, statusMessage, headerString);
            }
Exemple #9
0
        /// <summary>
        /// Embedded Resources 请求事件
        /// </summary>
        /// <param name="e">CoreWebView2WebResourceRequestedEventArgs</param>
        public static void EmbeddedResourcesRequested(CoreWebView2WebResourceRequestedEventArgs e)
        {
            var      domain   = string.Empty;
            var      dir      = string.Empty;
            Assembly resource = null;

            foreach (var resourcesHandler in AppRuntime.RunTime.EmbeddedResourcesHandlers.Where(resourcesHandler => Regex.IsMatch(e.Request.Uri, @"^" + resourcesHandler.uri + "/{0,}.*", RegexOptions.IgnoreCase)))
            {
                domain   = resourcesHandler.uri;
                dir      = resourcesHandler.dir;
                resource = resourcesHandler.resource;
                break;
            }

            // 判断是否满足嵌入资源拦截
            if (!string.IsNullOrWhiteSpace(domain) && resource != null)
            {
                // 提取域名之后的取资源路径
                var resourcePath = Regex.Replace(e.Request.Uri, @"^" + domain + "/{0,}", string.Empty);

                // 剔除路径的参数, 提取资源路径
                resourcePath = Regex.Replace(resourcePath, @"\?.*", string.Empty).ToLower();
                resourcePath = resourcePath.Replace("/", ".");

                var memiType = new Uri(e.Request.Uri).MimeType();
                var stream   = resource.GetManifestResourceStream($"{resource.GetName().Name}.{dir}.{resourcePath}"); //当作为一个资源被嵌入后,资源的完整名称会由项目的默认命名空间与文件名组成
                if (stream != null)
                {
                    e.Response = Resource(stream, memiType);
                }
            }
        }
        public WinUICoreWebView2WebResourceRequestedEventArgsWrapper(CoreWebView2Environment environment, CoreWebView2WebResourceRequestedEventArgs webResourceRequestedEventArgs)
        {
            _environment = environment;
            _webResourceRequestedEventArgs = webResourceRequestedEventArgs;

            Request         = new WinUICoreWebView2WebResourceRequestWrapper(webResourceRequestedEventArgs);
            ResourceContext = (CoreWebView2WebResourceContextWrapper)webResourceRequestedEventArgs.ResourceContext;
        }
Exemple #11
0
 private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
 {
     if (uiHandler.IsValidUrl(e.Request.Uri))
     {
         var item = mainWebView.CoreWebView2.Environment.CreateWebResourceResponse(uiHandler.Resolve(e.Request.Uri), 200, null, null);
         e.Response = item;
     }
 }
        private void OnNavigate(object?sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            var canAccess = this.filter?.Invoke(e.Request.Uri) ?? true;

            if (!canAccess)
            {
                e.Response = this.wv2 !.Environment.CreateWebResourceResponse(new MemoryStream(), 0, "Permission Requred", null);
            }
        }
Exemple #13
0
        private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            Uri    parsedUri = new Uri(e.Request.Uri);
            string path;

            if (parsedUri.Scheme == "file")
            {
                path = parsedUri.LocalPath;
            }
            else if (parsedUri.Scheme == "http" && parsedUri.Host == "make.urlparser.happy")
            {
                path = parsedUri.LocalPath.TrimStart('/', '\\');
            }
            else
            {
                return;
            }
            var extension = Path.GetExtension(path).ToLowerInvariant();
            var mimeMap   = new Dictionary <string, string>()
            {
                { ".html", "text/html;charset=utf-8" },
                { ".htm", "text/html;charset=utf-8" },
                { ".js", "text/javascript;charset=utf-8" },
                { ".css", "text/css;charset=utf-8" }
            };

            if (File.Exists(path))
            {
                e.Response = environment.CreateWebResourceResponse(
                    new MemoryStream(File.ReadAllBytes(path)),
                    200, "OK", "Content-Type: " +
                    (mimeMap.TryGetValue(extension, out string mimeType) ? mimeType : "application/octet-stream"));
            }
            else
            {
                string errorMessageTemplate = @"
<h2>Error: 404 Not Found</h2>
<p>Please inform developer with these information.</p>
<hr/>
<table>
    <tr><th>Missing Path</th><td>{0}</td></tr>
    <tr><th>URL String</th><td>{1}</td></tr>
    {2}
</table>
                ";
                var    urlParsed            = new Uri(e.Request.Uri);
                var    errorMessage         = string.Format(errorMessageTemplate, path, e.Request.Uri,
                                                            string.Join("\n", urlParsed.GetType().GetProperties()
                                                                        .Select(t => string.Format("<tr><th>{0}</th><td>{1}</td></tr>", t.Name, t.GetValue(urlParsed))))
                                                            );
                e.Response = environment.CreateWebResourceResponse(
                    new MemoryStream(Encoding.UTF8.GetBytes(errorMessage)),
                    404, "Not Found", "Content-Type: text/html;charset=utf-8"
                    );
            }
        }
Exemple #14
0
 /// <summary>
 /// 注册 CoreWebView2OnWebResourceRequested 事件
 /// </summary>
 /// <param name="sender">sender</param>
 /// <param name="e">CoreWebView2WebResourceRequestedEventArgs</param>
 private static void CoreWebView2OnWebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
 {
     if (RequestHandlers == null || !RequestHandlers.Any())
     {
         return;
     }
     foreach (var handler in RequestHandlers)
     {
         handler.Value?.Invoke(e);
     }
 }
 private void _vistaHtml_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
 {
     if (this._tiempos != null)
     {
         this._tiempos.Add(new EntryOfTime
         {
             Etiqueta = "SOLICITUD DE RECURSO",
             Mensaje  = "Se solicita el recurso " + e.Request.Uri,
             Tiempo   = DateTime.Now
         });
         this.DibujaDiagrama();
     }
 }
        private void HandleWebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs args)
        {
            // TODO: we have to resort to reflection here because of two issues:
            //
            // 1) The Uri for the framework resource has a custom scheme and HttpRequestMessage does not respond
            //    non http schemes:
            //    https://github.com/dotnet/runtime/blob/0c7e9c19cb22420248c53eec6bb885fb563c700d/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs#L89-L92
            //    https://github.com/dotnet/runtime/blob/0c7e9c19cb22420248c53eec6bb885fb563c700d/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs#L188-L191
            //    So we have to take the Uri string from the native ICoreWebView2WebResourceRequest and create an
            //    Uri from it ourselves.
            //    This issue is tracked here: https://github.com/MicrosoftEdge/WebViewFeedback/issues/325
            // 2) There is a null reference exception that occurs in WebView2 when trying to set the response on the event
            //    argument.
            //    This issue is tracked here: https://github.com/MicrosoftEdge/WebViewFeedback/issues/219

            var eventType  = args.GetType();
            var field      = eventType.GetField("_nativeCoreWebView2WebResourceRequestedEventArgs", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            var nativeArgs = field.GetValue(args);

            var requestProperty = eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.Raw.ICoreWebView2WebResourceRequestedEventArgs").GetProperty("Request");
            var nativeRequest   = requestProperty.GetValue(nativeArgs);
            var uriProperty     = eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.Raw.ICoreWebView2WebResourceRequest").GetProperty("Uri");
            var uriString       = (string)uriProperty.GetValue(nativeRequest);
            var uri             = new Uri(uriString);

            if (Element.SchemeHandlers.TryGetValue(uri.Scheme, out var handler))
            {
                var responseStream = handler(uriString, out var responseContentType);
                if (responseStream != null) // If null, the handler doesn't want to handle it
                {
                    responseStream.Position = 0;

                    var environment = (CoreWebView2Environment)Control.GetType().GetProperty("Environment", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(Control);
                    field = environment.GetType().GetField("_nativeCoreWebView2Environment", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                    var nativeEnvironment = field.GetValue(environment);

                    var managedStream = Activator.CreateInstance(eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.ManagedIStream"),
                                                                 System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance,
                                                                 null,
                                                                 new object[] { responseStream },
                                                                 null);

                    var createWebSourceResponseMethod = eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Environment").GetMethod("CreateWebResourceResponse", new Type[] { Type.GetType("System.Runtime.InteropServices.ComTypes.IStream"), typeof(int), typeof(string), typeof(string) });
                    var response = createWebSourceResponseMethod.Invoke(nativeEnvironment, new object[] { managedStream, 200, "OK", $"Content-Type: {responseContentType}" });

                    var responseProperty = eventType.Assembly.GetType("Microsoft.Web.WebView2.Core.Raw.ICoreWebView2WebResourceRequestedEventArgs").GetProperty("Response");
                    responseProperty.SetValue(nativeArgs, response);
                }
            }
        }
        private async void BrowserWebResourceRequestedAsync(object sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            var deferral = e.GetDeferral();

            var request = new ResourceRequest(e.Request.Uri, e.Request.Method, e.Request.Headers, e.Request.Content);

            var response = await RequestInterceptor.ProcessRequest(_appFunc, request);

            var coreWebView2 = (CoreWebView2)sender;

            e.Response = coreWebView2.Environment.CreateWebResourceResponse(response.Stream, response.StatusCode, response.ReasonPhrase, response.GetHeaderString());

            deferral.Complete();
        }
Exemple #18
0
        private void HandleWebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs args)
        {
            var uriString = args.Request.Uri;
            var uri       = new Uri(uriString);

            if (Element.SchemeHandlers.TryGetValue(uri.Scheme, out var handler))
            {
                var responseStream = handler(uriString, out var responseContentType);
                if (responseStream != null) // If null, the handler doesn't want to handle it
                {
                    responseStream.Position = 0;
                    args.Response           = Control.CoreWebView2.Environment.CreateWebResourceResponse(responseStream, StatusCode: 200, ReasonPhrase: "OK", Headers: $"Content-Type: {responseContentType}");
                }
            }
        }
Exemple #19
0
        private void HandleWebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs args)
        {
            var uriString = args.Request.Uri;
            var uri       = new Uri(uriString);

            if (SchemeHandlers.TryGetValue(uri.Scheme, out var handler) && _coreWebView2Environment != null)
            {
                var responseStream = handler(uriString, out var responseContentType);
                if (responseStream != null) // If null, the handler doesn't want to handle it
                {
                    responseStream.Position = 0;
                    args.Response           = _coreWebView2Environment.CreateWebResourceResponse(responseStream, StatusCode: 200, ReasonPhrase: "OK", Headers: $"Content-Type: {responseContentType}{Environment.NewLine}Cache-Control: no-cache, max-age=0, must-revalidate, no-store");
                }
            }
        }
Exemple #20
0
        private async void Webview_WebResourceRequested(object?sender, CoreWebView2WebResourceRequestedEventArgs e)
        {
            using var deferral = e.GetDeferral();

            var uri           = new Uri(e.Request.Uri);
            var contentStream = await Application.ContentProvider.GetStreamAsync(uri);

            if (contentStream == null)
            {
                e.Response = webview.CoreWebView2.Environment.CreateWebResourceResponse(null, 404, "Not Found", string.Empty);
            }
            else
            {
                e.Response = webview.CoreWebView2.Environment.CreateWebResourceResponse(contentStream, 200, "OK", string.Empty);
                e.Response.Headers.AppendHeader("Content-Type", MimeTypes.FindForUri(uri));
            }
        }
Exemple #21
0
        /// <summary>
        /// API 请求事件
        /// </summary>
        /// <param name="e">CoreWebView2WebResourceRequestedEventArgs</param>
        public static void WebApiRequested(CoreWebView2WebResourceRequestedEventArgs e)
        {
            // 判断是否为API 域名请求
            if (Regex.IsMatch(e.Request.Uri, @"^" + AppRuntime.RunTime.ApiDomain + "/{0,}.*", RegexOptions.IgnoreCase))
            {
                // 提取域名之后的函数名称路径
                var methodPath = Regex.Replace(e.Request.Uri, @"^" + AppRuntime.RunTime.ApiDomain + "/{0,}", string.Empty);

                // 剔除路径的参数, 提取函数名称
                methodPath = Regex.Replace(methodPath, @"\?.*", string.Empty).ToLower();

                // 查找 API 路由
                var route = AppRuntime.RunTime.Routes.FirstOrDefault(m => m.RoutePath == methodPath && m.RouteMethod.Method.ToUpper() == e.Request.Method.ToUpper());

                // 执行API
                e.Response = route?.ExecuteCore(e.Request);
            }
        }
        protected virtual Task HandleWebResourceRequest(CoreWebView2WebResourceRequestedEventArgs eventArgs)
        {
#if WEBVIEW2_WINFORMS || WEBVIEW2_WPF
            // Unlike server-side code, we get told exactly why the browser is making the request,
            // so we can be smarter about fallback. We can ensure that 'fetch' requests never result
            // in fallback, for example.
            var allowFallbackOnHostPage =
                eventArgs.ResourceContext == CoreWebView2WebResourceContext.Document ||
                eventArgs.ResourceContext == CoreWebView2WebResourceContext.Other;                 // e.g., dev tools requesting page source

            var requestUri = QueryStringHelper.RemovePossibleQueryString(eventArgs.Request.Uri);

            if (TryGetResponseContent(requestUri, allowFallbackOnHostPage, out var statusCode, out var statusMessage, out var content, out var headers))
            {
                var headerString = GetHeaderString(headers);

                eventArgs.Response = _coreWebView2Environment.CreateWebResourceResponse(content, statusCode, statusMessage, headerString);
            }
#elif WEBVIEW2_MAUI
            // No-op here because all the work is done in the derived WinUIWebViewManager
#endif
            return(Task.CompletedTask);
        }
Exemple #23
0
 public WinUICoreWebView2WebResourceRequestWrapper(CoreWebView2WebResourceRequestedEventArgs webResourceRequestedEventArgs)
 {
     _webResourceRequestedEventArgs = webResourceRequestedEventArgs;
 }
Exemple #24
0
 private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
 {
     Debug.WriteLine($"WebResourceRequested: {e.Request.Uri}");
 }