//
// LoginWebView.swift
// Bremer
//
// Created by yhornisse on 2023/07/17.
//
import SwiftUI
import WebKit
struct LoginWebView: UIViewRepresentable {
private let webView = WKWebView()
@EnvironmentObject
private var settingViewModel : SettingViewModel
func makeUIView(context: Context) -> WKWebView {
webView.navigationDelegate = context.coordinator
webView.load(URLRequest(url: URL(string:"\(settingViewModel.getSetting().baseUrl)/login.html")!))
return webView
}
func updateUIView(_ uiView: WKWebView, context: Context) {
}
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
}
extension LoginWebView {
class Coordinator: NSObject, WKNavigationDelegate {
private var parent: LoginWebView
private let cookieName = "JSESSIONID"
init(_ parent: LoginWebView) {
self.parent = parent
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
webView.configuration.websiteDataStore.httpCookieStore.getAllCookies { cookies in
for cookie in cookies {
if cookie.name == self.cookieName {
UserDefaults.standard.set(cookie.value, forKey: self.cookieName)
webView.configuration.websiteDataStore.httpCookieStore.delete(cookie)
return
}
}
}
}
}
}