CookiesWebView icon indicating copy to clipboard operation
CookiesWebView copied to clipboard

UWP support

Open dominik-weber opened this issue 8 years ago • 2 comments

Have you thought about supporting Windows Universal platform? The code required should be fairly similar to the WP renderer.

dominik-weber avatar Jun 22 '16 03:06 dominik-weber

Hi sean,

This "Cross-platform Cookie Access"" will support windows platform?

With Regards, Sunil Rana

sunilyts avatar Feb 13 '17 15:02 sunilyts

HI i got solution and it is working fine for Windows "UWP" application. below in windows render code

public class CookieWebViewRenderer : Xamarin.Forms.Platform.UWP.WebViewRenderer { protected override void OnElementChanged(ElementChangedEventArgs<WebView> e) { base.OnElementChanged(e);

        if (e.OldElement == null)
        {
            Control.NavigationStarting += ControlOnNavigating;
            Control.NavigationCompleted += ControlOnNavigated;
        }
    }

    protected void ControlOnNavigated(object sender, Windows.UI.Xaml.Controls.WebViewNavigationCompletedEventArgs navigationEventArgs)
    {


        var filter = new HttpBaseProtocolFilter();
        HttpClient client = new HttpClient(filter);
        HttpCookieCollection httpCookieCollection = filter.CookieManager.GetCookies(navigationEventArgs.Uri);
        //httpCookieCollection.
        // Use this, while it comes from an instance, its shared across everything.
        var cookieCollection = new CookieCollection();
        foreach (var cookie in httpCookieCollection)
        {
            cookieCollection.Add(new Cookie
            {
                Domain = cookie.Domain,
                Name = cookie.Name,                    
                Value = cookie.Value,                    
                
            });
        }
        CookieWebView.OnNavigated(new CookieNavigatedEventArgs()
        {

            Cookies = cookieCollection,
            Url = navigationEventArgs.Uri.ToString()
        });
    }

    protected void ControlOnNavigating(object sender, Windows.UI.Xaml.Controls.WebViewNavigationStartingEventArgs navigatingEventArgs)
    {
        CookieWebView.OnNavigating(new CookieNavigationEventArgs()
        {
            Url = navigatingEventArgs.Uri.ToString()
        });
    }

    public CookieWebView CookieWebView
    {
        get { return Element as CookieWebView; }
    }
}

sunilyts avatar Feb 16 '17 07:02 sunilyts