iOS Swift WKWebView 쿠키 유지
UIWebView를 사용하던것과 비교해서 WKWebView 쿠키는
앱 종료후 다시 실행할때 대부분 유지하나,
PHPSESSID 쿠키는 기존값을 유지하는것이 아니라 새로 만들어서, 자동로그인 등을 구현할때 동작이 되지 않는 경우가 있다.
이때 임으로 앱에서 자동로그인시 PHPSESSID 쿠키값을 저장하고, 실행할때마다 저장된 쿠키를 불러서 사용하면,
PHPSESSID 쿠키값을 유지할 수 있다.
1. PHPSESSID 쿠키값 저장
// 자동로그인 선택후 로그인시
// 쿠키가져와서 PHPSESSID 쿠키값은 내장스토리지 변수에 저장
if #available(iOS 11.0, *) {
WKWebsiteDataStore.default().httpCookieStore.getAllCookies { (cookies) in
for cookie in cookies{
print("@@@ cookie ==> \(cookie.name) : \(cookie.value)")
if cookie.name == "PHPSESSID" {
UserDefaults.standard.set(cookie.value, forKey:"PHPSESSID")
print("@@@ PHPSESSID 저장하기: \(cookie.value)")
}
}
}
} else {
// Fallback on earlier versions
}
2. 저장된 PHPSESSID 쿠키값 불러와서 세팅
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let loadedSessid = UserDefaults.standard.value(forKey: "PHPSESSID") as! String?
if let temp = loadedSessid{
print("@@@ PHPSESSID 불러오기~~: \(temp)")
// 이게 정상동작하는듯.. 자동로그인 됨
let cookieString : String = "document.cookie='PHPSESSID=\(temp);path=/;domain=\(cookie_domain);'"
webView.evaluateJavaScript(cookieString)
}
}
참고) iOS Swift WKWebView 쿠키값 가져오기 https://g-y-e-o-m.tistory.com/83
'iOS' 카테고리의 다른 글
iOS Swift 런치스크린 시간 고정(강제 지연) (0) | 2019.06.03 |
---|---|
iOS Swift WKWebView 하이브리드앱에서 신용카드 결제 (0) | 2019.06.03 |
iOS 하이브리드앱(기본 브라우져 사용)에서시 서버의 Front에서 javaScript를 이용하여 연동하는 방법 (0) | 2019.05.10 |
iOS 앱 아이콘 만들기 (0) | 2019.05.07 |
ios swift 키패드, 키보드 닫기, 숨기기 (0) | 2019.03.26 |