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); }
public HybridWebViewClient(HybridWebViewRenderer renderer) { _reference = new WeakReference <HybridWebViewRenderer>(renderer); }
public HybridWebViewBridge(HybridWebViewRenderer renderer) { _reference = new WeakReference <HybridWebViewRenderer>(renderer); }