728x90

using System;

using System.Threading;

using System.Threading.Tasks;

 

using Android.Content;

using Android.Webkit;

 

using AUOSMS.APP.Controls;

using AUOSMS.APP.Droid.Renderers;

 

using Xamarin.Forms;

using Xamarin.Forms.Platform.Android;

 

[assembly: ExportRenderer(typeof(WebViewer), typeof(WebViewRender))]

namespace AUOSMS.APP.Droid.Renderers

{

    public class WebViewRender : WebViewRenderer

    {

        public WebViewRender(Context context) : base(context)

        { }

 

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)

        {

            base.OnElementChanged(e);

 

            if (Control == null) return;

 

            // Cache Clear

            Control.ClearCache(true);

            Control.Settings.SetAppCacheEnabled(false);

            Control.Settings.CacheMode = Android.Webkit.CacheModes.NoCache;

 

            // JavaScript 허용

            Control.Settings.JavaScriptEnabled = true;

 

            // Cookie 허용

            CookieManager cookieManager = CookieManager.Instance;

            cookieManager.SetAcceptCookie(true);

            cookieManager.SetAcceptThirdPartyCookies(Control, true);

        }

    }

}

 

* 참고링크

https://stackoverflow.com/questions/42853636/put-cookie-on-a-webview-in-xamarin/42854428

 

* 참고지식 - Android 기준

mixedContentMode

혼합 컨텐츠 모드를 지정합니다. 즉, WebView를 사용하면 안전한 출처가 다른 출처의 콘텐츠를로드 할 수 있습니다.

never (기본값) : WebView는 보안 오리진이 안전하지 않은 오리진에서 컨텐츠를로드하도록 허용하지 않습니다.

always : WebView를 사용하면 보안 출처가 다른 출처에서 콘텐츠를로드 할 수 있습니다 (해당 출처가 안전하지 않은 경우에도).

compatibility : WebView는 혼합 컨텐츠와 관련하여 최신 웹 브라우저의 접근 방식과 호환되도록 시도합니다.

 

 

thirdPartyCookiesEnabled

WebView 에서 타사 쿠키를 활성화하는 부울 값입니다. Android Kitkat 이상 및 iOS에서 타사 쿠키가 기본적으로 활성화 된 경우에만 Android Lollipop 이상에서 사용됩니다.

기본값은 true 입니다.

 

 

 

728x90
Posted by kjun.kr
,