Swift WKWebView 페이지 로드에 관련된 질문입니다.

조회수 3002회

지금 WKWebView를 이용한 하이브리드 앱을 만들고 있습니다. 문제가 하나 생겼는데요 웹뷰에서 페이지를 로드할때 url 뒤에 #이 붙으면 로드를 제대로 못하네요.

func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void)

이 메소드에서 처리해야 할거 같은데 이것저것 해봐도 안되고 어떻게 해야될지 잘 모르겠습니다. 도와주세요ㅠㅠ

1 답변

  • Single view application으로 프로젝트를 생성하고 아래 코드와 같이 ViewController를 구성하니 #이 잘 동작합니다.

    urlWithSharp에 들어있는 url의 #뒤를 one, two,three등으로 변경하면서 실행해 봤어요.

    import UIKit
    import WebKit
    
    class ViewController: UIViewController,WKNavigationDelegate {
    
        var webView : WKWebView!
        override func viewDidLoad() {
            super.viewDidLoad()
            let urlWithSharp = "http://www.owlcarousel.owlgraphic.com/demos/urlhashnav.html#three"
            let url = NSURL(string: urlWithSharp)
            let request = NSURLRequest(URL: url!)
    
            // init and load request in webview.
            webView = WKWebView(frame: self.view.frame)
            webView.navigationDelegate = self
            webView.loadRequest(request)
            self.view.addSubview(webView)
            self.view.sendSubviewToBack(webView)
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    }
    
    • 기본상태에서 잘 되는걸 보면 제가 메소드에 추가한게 문제가 되었나보네요. 답변 감사드립니다. 그리고 궁금한게 있는데 소스에서 self.view.sendSubviewToBack(webView) 이 함수는 왜 호출해주는건가요? 알 수 없는 사용자 2016.9.5 09:43

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)