Android 5.0 / API 21 이상 PG(KCP)모듈 결제시 Webview Session 오류
Android 5.0 / API 21 이상 PG(KCP)모듈 결제시 Webview Session 오류
API 레벨을 21이상으로 변경 후
KCP PG모듈 호출 및 결제완료 리턴시 오류가 났다. 마치 세션이 끊기는 듯한 증상이 나타났다.
아래와 같이 사용되는 webView에 setMixedContentMode() / setAcceptThirdPartyCookies()
셋팅을 적용시켜준다.
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.setAcceptThirdPartyCookies(mWebView, true);
안드로이드 5.0부터 웹뷰에 아래와 같은 변경사항이 적용된다.
제대로 대응하지 않는경우 http content, session, cookie등에서 문제가 생길 것 같다.
MixedContentMode를 Allow하지 않는 경우 https에서 이미지가 안보이는 문제가 발생하기도 한다.
https://developer.android.com/about/versions/android-5.0-changes.html#custom_permissions
WebView
Android 5.0은 앱의 기본 동작을 변경합니다.
- 앱이 API 레벨 21 이상을 대상으로 하는 경우:
- 시스템은 기본적으로 혼합 콘텐츠와 타사 쿠키를 차단합니다. 혼합 콘텐츠와 타사 쿠키를 허용하려면 각각
setMixedContentMode()
및setAcceptThirdPartyCookies()
메서드를 사용합니다. - 이제 시스템이 HTML 문서 중에서 그릴 수 있는 부분을 지능적으로 선택합니다. 이러한 새 기본 동작은 메모리 공간을 줄이고 성능을 향상시킵니다. 문서 전체를 즉시 렌더링하려는 경우
enableSlowWholeDocumentDraw()
를 호출하여 이 최적화를 비활성화합니다.
- 시스템은 기본적으로 혼합 콘텐츠와 타사 쿠키를 차단합니다. 혼합 콘텐츠와 타사 쿠키를 허용하려면 각각
- 앱이 21 이하의 API 레벨을 대상으로 하는 경우: 시스템이 혼합 콘텐츠와 타사 쿠키를 허용하며 항상 전체 문서를 한 번에 렌더링합니다.
[blocked] The page at ‘https://xxx’ was loaded over HTTPS, but ran insecure content from http://xxx.css’: this content should also be loaded over HTTPS. |
최근 댓글