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


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

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

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

  • 2016년 09월 02일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 09월 01일에 작성됨

조회수 165


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.
    }
}
  • 2016년 09월 02일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

  • 기본상태에서 잘 되는걸 보면 제가 메소드에 추가한게 문제가 되었나보네요. 답변 감사드립니다. 그리고 궁금한게 있는데 소스에서 self.view.sendSubviewToBack(webView) 이 함수는 왜 호출해주는건가요?     LL   2016.9.5 09:43     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close