Esempio n. 1
0
            public override WebResourceResponse ShouldInterceptRequest(WebView view, string url)
            {
                var postData = GetNavigationData(url);

                if (postData != null)
                {
                    if (postData.PostData != null)
                    {
                    try
                    {
                        var request = HttpWebRequest.Create(url);
                        //request.ContentType = "text/plain"; //TODO: What should we set here?
                        request.Method = "POST";

                        if (postData.AdditionalHeaders != null)
                        {
                            foreach (var additionalHeader in postData.AdditionalHeaders)
                            {
                                request.Headers.Add(additionalHeader.Key, additionalHeader.Value);
                            }
                        }

                        using (var reqestStream = request.GetRequestStream())
                        {
                            reqestStream.Write(postData.PostData, 0, postData.PostData.Length);
                            reqestStream.Flush();
                        }

                        //using ( //TODO: Don't we need using directive here?
                        var response = request.GetResponse() as HttpWebResponse;
                        //)
                        {
                            if (response.StatusCode != HttpStatusCode.OK)
                            {
                                //TODO: do we need to rise NavigationFailed event here?
                            }

                            var res = new WebResourceResponse(response.ContentType, response.ContentEncoding, response.GetResponseStream());
                            return res;
                        }
                    }
                    catch (InvalidOperationException ioex)
                    {
                        var e = new NavigationFailedEventArgs(
                            new Uri(url),
                            ioex // Do we need to set this exception? WP8 WebView always set it to null
                            );
                        _Parent.OnNavigationFailed(e);

                        if (e.Handled)
                        {
                            return GetCancelWebResourceResponse();
                        }
                    }
                }
                }

                return null; //base.ShouldInterceptRequest(view, url);
            }
Esempio n. 2
0
 private void OnNavigationFailed(NavigationFailedEventArgs e)
 {
     if (this.NavigationFailed != null)
     {
         this.NavigationFailed(this, e);
     }
 }
Esempio n. 3
0
            public override void OnReceivedError(WebView view, ClientError errorCode, string description, string failingUrl)
            {
                base.OnReceivedError(view, errorCode, description, failingUrl);

                var e = new NavigationFailedEventArgs(
                    new Uri(failingUrl),
                    new InvalidOperationException(description) // Do we need to set this exception? WP8 WebView always set it to null
                    );
                _Parent.OnNavigationFailed(e);

                if (e.Handled)
                {
                    //TODO: Don't render error page
                }
            }