How to load a url link that is inside a web view and keep it in that web view in SWIFT

前端 未结 2 941
傲寒
傲寒 2020-12-22 10:03

I have a web view that has a webpage with links at the bottom. I have a way to deal with them being clicked, but all it does is open them into a new safari browser. This is

相关标签:
2条回答
  • 2020-12-22 10:42

    In the webview delegate you are going to want to navigate to the new url using that same webview.

    For you this means that inside your switch case you should use loadRequest

    loadRequest documentation

    To fix your issue you should remove the line using UIApplication.sharedApplication().openURL(request.URL!)

    and replace it with a call to loadRequest

    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
       }
    }
    

    Hope this helps! Have a nice day!

    0 讨论(0)
  • 2020-12-22 10:43

    Give delegates to your 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")
    }
    

    Output :

    Don't Forgot to add this attribute in .plist file.

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

    0 讨论(0)
提交回复
热议问题