2014-10-11 3 views
0

7.1 배포에서 새 WebKit을 구현할 수 있습니다. iOS8을 실행하는 기기에서 오류없이 사용할 수 있습니다. 그러나 장치가 iOS8 아래로 떨어지면 내 WKWebView는 초기화 후에도 무효가됩니다. OS가 실제로 iOS8 이하로 떨어지면 웹킷을 침묵하고 프로젝트에 성공적으로 추가 할 수 있습니다. .WKWebView 도움말 지원

계속 진행할 수 있도록이 오류를 확인하고 싶습니다. 이 웹킷은 신속하고 iOS8의 출시 시점에 소개 되었기 때문에. 감사합니다

답변

0

다음은 간단한 프로토콜입니다. 여기서 새 프로토콜을 만들고 같은 프로토콜에서 UIWebView와 WKWebView를 모두 확장합니다. 이를 통해 내 View Controller 내부에서 이러한 뷰를 쉽게 추적 할 수 있으며 둘 다 URL에서로드하는 일반적인 방법을 사용하므로 추상화가 쉬워집니다.

protocol MyWebView{ 
    func loadRequestFromUrl(url: NSURL!) 
} 

extension UIWebView:MyWebView{ 
    func loadRequestFromUrl(url: NSURL!){ 
    let urlRequest = NSURLRequest(URL: url) 
    loadRequest(urlRequest) 
    } 
} 

extension WKWebView:MyWebView{ 
    func loadRequestFromUrl(url: NSURL!){ 
    let urlRequest = NSURLRequest(URL: url) 
    loadRequest(urlRequest) 
    } 
} 

// This is a simple closure, which takes the compared system version, the comparison test success block and failure block 

let SYSTEM_VERSION_GREATER_THAN_OR_EQUAL: (String,() ->(),() ->()) -> Void = { 
    (var passedVersion: String, onTestPass:() ->(), onTestFail:() ->()) in 
    let device = UIDevice.currentDevice() 
    let version = device.systemVersion 
    let comparisonOptions = version.compare(passedVersion, options: NSStringCompareOptions.NumericSearch, range: Range(start: version.startIndex, end: version.endIndex), locale: nil) 
    if comparisonOptions == NSComparisonResult.OrderedAscending || comparisonOptions == NSComparisonResult.OrderedSame{ 
    onTestPass() 
    }else{ 
    onTestFail() 
    } 

} 
class ViewController: UIViewController{ 

    var webView: MyWebView! 

    override func viewDidLoad() { 

    super.viewDidLoad() 

    SYSTEM_VERSION_GREATER_THAN_OR_EQUAL("8.0", 
    { 
     let theWebView = WKWebView(frame: self.view.bounds) 
     self.view.addSubview(theWebView) 
     self.webView = theWebView 
    }, 
     { 
     let theWebView = UIWebView(frame: self.view.bounds) 
     self.view.addSubview(theWebView) 
     self.webView = theWebView 

    }) 

    webView.loadRequestFromUrl(NSURL(string: "http://google.com")) 

    } 

} 
+0

게시자 님, 감사드립니다. 즉, WebKit 프레임 워크를 추가하면 경고 및 오류 만 표시됩니다. – nferocious76