반응형
안드로이드 웹뷰에서 접속한 페이지에서 로그인 또는 쿠키를 저장시 앱을 종료하고 다시 실행시
쿠키가 삭제되는 경우가 발생합니다. 이런 경우 아래와 같이 앱과 웹뷰 사이의 쿠키값 싱크를 해 주어야 합니다.
액티비티에 아래와 같이 추가합니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
.....
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.createInstance(this);
}
}
@Override
protected void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.getInstance().startSync();
}
}
@Override
protected void onPause() {
super.onPause();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.getInstance().stopSync();
}
}
웹뷰를 생성할 때 아래와 같이 onPageFinished 이벤트에서 쿠키값을 싱크합니다.
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.getInstance().sync();
} else {
CookieManager.getInstance().flush();
}
}
}
위와 같이 처리하면 앱을 종료하고 난 후에도 쿠키값이 저장이 되어 있어서 앱을 재실행시 쿠키를
다시 사용가능합니다.
반응형
댓글