Notice
Recent Posts
Recent Comments
Link
투케이2K
140. (ios/swift) wkwebview 웹뷰 evaluateJavaScript 자바스크립트 데이터 전달 방식 사용해 쿠키 (cookie) 설정 방법 본문
IOS
140. (ios/swift) wkwebview 웹뷰 evaluateJavaScript 자바스크립트 데이터 전달 방식 사용해 쿠키 (cookie) 설정 방법
투케이2K 2022. 3. 31. 12:13[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
// [자바스크립트 사용해 쿠키를 셋팅 하기 위해 형식 정의 실시]
var cookies = "document.cookie='"
cookies += "JSESSIONID=6245179bad665fcda080087c;domain=m.test.ac.kr;path=/;"
cookies += "'"
print("")
print("===============================")
print("[A_ChildWebview >> observeValue() :: 웹뷰 로드 상태 확인]")
print("쿠키값 자바스크립트 셋팅 :: ", cookies)
print("===============================")
print("")
// MARK: [자바스크립트에 쿠키 셋팅 실시 >> evaluateJavaScript]
self.main_webview!.evaluateJavaScript("\(cookies)") { (success, error) in
if error != nil {
print("")
print("===============================")
print("[A_ChildWebview >> observeValue() :: 웹뷰 로드 상태 확인]")
print("설 명 :: ", "[IOS >> 자바스크립트] 전달받은 쿠키값 자바스크립트 셋팅")
print("cookies :: ", cookies)
print("전송 결과 [error] :: ", error)
print("===============================")
print("")
}
else {
print("")
print("===============================")
print("[A_ChildWebview >> observeValue() :: 웹뷰 로드 상태 확인]")
print("설 명 :: ", "[IOS >> 자바스크립트] 전달받은 쿠키값 자바스크립트 셋팅")
print("cookies :: ", cookies)
print("전송 결과 [success] :: ", "OK")
print("===============================")
print("")
// MARK: [자바스크립트에 저장된 쿠키 확인 실시]
if #available(iOS 11.0, *) {
// [웹뷰에 저장된 쿠키 값 확인 실시]
self.main_webview!.configuration.websiteDataStore.httpCookieStore.getAllCookies { cookies in
print("")
print("===============================")
print("[A_ChildWebview >> observeValue() :: 웹뷰 로드 상태 확인]")
print("-------------------------------")
print("설 명 :: ", "[셋팅 후] 자바스크립트에 저장된 [개별] 쿠키값 확인 실시")
print("-------------------------------")
print("cookie [개수] :: ", cookies.count)
print("-------------------------------")
print("cookie [쿠키] :: ", cookies)
print("===============================")
print("")
}
// [웹뷰 리로드 무한 루프 방지 위해 저장된 플래그값 확인]
let load_flag = S_Preference().getString(_sKey: S_FinalData.CHILD_LOAD_FLAG)
if load_flag != nil
&& load_flag.count>0
&& load_flag.trim().equals(_string: "") == false { // [널 아닌 경우]
// [웹뷰 정상 표시 실시]
self.main_webview!.isHidden = false
}
else { // [널인 경우]
// [웹뷰 로드 플래그값 지정 실시]
S_Preference().setString(_sKey: S_FinalData.CHILD_LOAD_FLAG, _sValue: "TRUE")
// [쿠키 생성 후 쿠키 정보가 반영된 웹페이지를 불러 올 수 있도록 새로 고침을 해줍니다]
self.main_webview!.reload()
}
}
else {
print("")
print("===============================")
print("[A_ChildWebview >> observeValue() :: 웹뷰 로드 상태 확인]")
print("설 명 :: ", "[셋팅 후] 저장된 쿠키값 확인 실시")
print("error [에러] :: iOS 11.0 미만 디바이스")
print("===============================")
print("")
}
}
}
반응형
'IOS' 카테고리의 다른 글
Comments