如何加载Web视图中的URL链接并将其保留在SWIFT中的该Web视图中

我有一个网页视图,其底部有一个链接的网页。 我有办法处理它们被点击,但它只是将它们打开到一个新的Safari浏览器中。 这不是我想要的。我希望他们留在网页视图中,让我轻松地浏览它们。 有没有办法做到这一点?

我试过使用常规的Web视图,但是底部的链接不起作用。

这是我到目前为止:

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

在webview委托中,您将要使用相同的webview导航到新URL。

对你而言,这意味着在你的交换机案例中你应该使用loadRequest

loadRequest文档

要解决您的问题,您应该使用UIApplication.sharedApplication().openURL(request.URL!)删除该行UIApplication.sharedApplication().openURL(request.URL!)

并通过调用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 } } 

希望这可以帮助! 祝你今天愉快!

给代表你的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") } 

输出:

它是我的webView输出加载网址

不要忘记在.plist文件中添加此属性。

 NSAppTransportSecurity  NSAllowsArbitraryLoads   

.plist文件代码