반응형
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
- navigationAction과 decisionHandler를 가진 이 함수를 구현
return decisionHandler(.allow)
// or
return decisionHandler(.cancel)
- 특별한 일이 없다면 decisionHandler로 allow를 전달. URL에 의한 화면 이동, 로드를 막으려면 cancel로 전달
URL Scheme 얻어오기
if let url = navigationAction.request.url,
url.scheme == "{your Scheme!!}" {
}
// code here!
return decisionHandler(.cancel)
}
- navigationAction의 request에서 url을 얻을 수 있음
- 이때 url의 scheme으로 전달받은 스킴을 조회 할 수 있음
- 특정 처리를 한다면 cancel로 그렇지 않다면 allow로 decisionHnadler에 값을 전달함
URL Query Item 사용하기
- 위 navigationAction.request에서 얻어온 url로 queryItems을 조회할 수 있음
guard let component = URLComponents(string: url.absoluteString) else {
decisionHandler(.cancel)
return
}
- URL 타입인 url을 absoluteString을 이용해서 String으로 변환한 다음 URLCompoenents의 string 인자로 넘김
let queries = component.queryItems
- 이때 component로 인자로 받은 URLComponents는 queryItems라는 어레이로 쿼리의 이름과 값이 전달됨
let value = component.queryItems?.first?.value
- value를 얻고 싶은 경우
let name = component.queryItems?.first?.name
- name 값을 얻고 싶은 경우
728x90
반응형
'🍎 iOS' 카테고리의 다른 글
[RealmSwift] primaryKey와 AutoIncrease (0) | 2022.10.02 |
---|---|
[RealmSwift] 데이터 모델에 enum으로 타입 지정하기 (0) | 2022.10.02 |
[iOS/Swift] WKWebView URL 로드 하기, Request 설정하기 (0) | 2022.09.26 |
[iOS/RxSwift] RxSwift와 RxRealm으로 UICollectionView사용하기 (2) | 2022.09.19 |
[iOS/Swift/Library] IQKeyboardManager (0) | 2022.09.16 |
댓글