//
// AllDealApp.swift
// AllDeal
//
// Created by Ethan Kim on 2023/04/04.
//
import Foundation
import SwiftUI
import WebKit
struct WebView: UIViewRepresentable{
let url: URL
@Binding var showLoading: Bool
func makeUIView(context: Context) -> some UIView {
let webView = WKWebView()
webView.navigationDelegate = context.coordinator
let request = URLRequest(url: url)
webView.allowsBackForwardNavigationGestures = true //history back(loading problem.....)
webView.load(request)
return webView
}
func updateUIView(_ uiView: UIViewType, context: Context) {
}
//Handle URL scheme TEST.............
func handleURLScheme(_ url: URL) -> Bool{
if url.scheme == "kakaologin"{
if UIApplication.shared.canOpenURL(url){
UIApplication.shared.open(url)
}
return true
}
return false
}
func makeCoordinator() -> WebViewCoordinator {
WebViewCoordinator(didStart: {
//showLoading=true
}, didFinish: {
//showLoading=false
})
}
}
class WebViewCoordinator: NSObject, WKNavigationDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var didStart: () -> Void
var didFinish: () -> Void
init(didStart:@escaping () -> Void, didFinish: @escaping () -> Void){
self.didStart = didStart
self.didFinish = didFinish
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
didStart()
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
didFinish()
}
}