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

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

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

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

1답변

  • 좋아요

    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) 이 함수는 왜 호출해주는건가요? Neo 2016.9.5 09:43

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.