2016-10-20 4 views
0

맨 아래에 링크가있는 웹 페이지가있는 웹보기가 있습니다. 클릭 한 상태를 처리 할 수있는 방법이 있지만 새로운 사파리 브라우저로 열면됩니다. 이것은 내가 원하는 것만은 아닙니다. 나는 그들에게 웹보기 안에 머물러 있고 그렇게 쉽게 그들을 탐색 할 수있게하고 싶습니다. 이것을 할 수있는 방법이 있습니까?웹보기 내에있는 URL 링크를로드하고 SWIFT의 웹보기에 유지하는 방법

나는 일반 웹보기를 사용하려고했으나 아래쪽의 링크는 작동하지 않습니다. 웹보기 대리자에서

class ViewController: UIViewController, UIWebViewDelegate { 


@IBOutlet weak var myWebview: UIWebView! 
@IBOutlet weak var returnButton: UIButton! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    prettyReturnButton(returnButton) 

    let url = NSURL(string: "mywebpage") 

    myWebview.delegate = self 

    print("Web page:" , url) 
    let requestObj = NSURLRequest(URL: url!); 
    myWebview.loadRequest(requestObj); 
    myWebview.keyboardDisplayRequiresUserAction = true 



} 

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
    switch navigationType { 
    case .LinkClicked: 
     // Open links in Safari 
     //let newRequestObj = NSURLRequest(URL: request.URL!) 
     // webView.loadRequest(newRequestObj) 
     UIApplication.sharedApplication().openURL(request.URL!) 
     return false 
    default: 
     // Handle other navigation types... 
     return true 
    } 
} 
+1

당신이 Safari에서 열린 링크를하지 않으려면, 왜 당신이 링크를 가로 채고에서 열 않는 위임 – xmhafiz

+0

를 사용하지 않을 경우 같은 웹뷰 내에서 링크로 이동되어 원정 여행? – rmaddy

답변

2

이 같은 웹뷰를 사용하여 새 URL로 이동하려는거야 : 여기

는 내가 지금까지 가지고있는 것입니다. 당신이 들어

는 스위치 케이스 내부에 당신은 당신이 UIApplication.sharedApplication().openURL(request.URL!)

를 사용하여 라인을 제거하고 loadRequest에 대한 호출로 대체해야 문제를 해결하려면 loadRequest

loadRequest documentation

을 사용한다는 것을 의미

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
    switch navigationType { 

    case .LinkClicked: 
     // Open links in Safari 

     guard let newRequest = request as? URLRequest else { return false } 

     webView.loadRequest(newRequest) 
     return false 
    default: 
     // Handle other navigation types... 
     return true 
    } 
} 

호 이것은 도움이! 좋은 하루 되세요!

3

당신의 UIViewController에 대표단을 보내기 UIWebViewDelegate

let url = NSURL(string: "http://www.djmazacool.com") 
let req = NSURLRequest(URL: url!) 
YOURWEBVIEW.delegate = self 
YOURWEBVIEW.loadRequest(req) 



func webViewDidStartLoad(webView: UIWebView) 
{ 
     // start animation 
     print("start loaded call") 
} 
func webViewDidFinishLoad(webView: UIWebView) 
{ 
     // load url complete 
     print("loading done call") 
} 

출력 : .plist 파일에이 속성을 추가 잊으하지 마십시오

Its my webView Output load url

합니다.

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

.plist file code