示例#1
0
        private bool TryIntercept(HybridWebViewRenderer renderer, string url, out WebResourceResponse response)
        {
            try
            {
                var res = renderer.Element.ShouldInterceptRequest(url);
                if (res != null)
                {
                    if (string.IsNullOrEmpty(res.MimeType))
                    {
                        var ext = url.Split('.').LastOrDefault();
                        if (!string.IsNullOrEmpty(ext))
                        {
                            res.MimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension(ext);
                        }
                    }
                    response = new WebResourceResponse(res.MimeType, res.Encoding, res.Contents);

                    try
                    {
                        if (response.ResponseHeaders == null)
                        {
                            response.ResponseHeaders = new ConcurrentDictionary <string, string>();
                        }
                        response.ResponseHeaders.Add("Cache-Control", "no-cache, no-store, must-revalidate");
                        response.ResponseHeaders.Add("Pragma", "no-cache");
                        response.ResponseHeaders.Add("Expires", "0");
                    }catch (Exception ex)
                    {
                        System.Diagnostics.Debug.WriteLine("Older Android; cache headers couldn't be set.");
                    }

                    return(true);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }

            response = null;
            return(false);
        }
 public JavascriptValueCallback(HybridWebViewRenderer renderer)
 {
     _reference = new WeakReference <HybridWebViewRenderer>(renderer);
 }
示例#3
0
 public HybridWebViewClient(HybridWebViewRenderer renderer)
 {
     _reference = new WeakReference <HybridWebViewRenderer>(renderer);
 }
 public HybridWebViewBridge(HybridWebViewRenderer renderer)
 {
     _reference = new WeakReference <HybridWebViewRenderer>(renderer);
 }