如何加载Web视图中的URL链接并将其保留在SWIFT中的该Web视图中 [英] How to load a url link that is inside a web view and keep it in that web view in SWIFT
问题描述
我的网页视图的网页底部有链接。我有办法处理它们被点击,但它只是将它们打开到一个新的Safari浏览器中。这不是我想要的。我希望他们留在网页视图中,让我轻松地浏览它们。有没有办法做到这一点?
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 not what I want.I would like for them to stay inside the web view and allow me to navigate them easily like that. Is there a way to do this?
我尝试过只使用常规网页视图,但是底部的链接无效。
I have tried just using a regular web view, but then the links at the bottom will not work.
这是我到目前为止所拥有的:
Here is what I have so far:
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导航到新网址。
In the webview delegate you are going to want to navigate to the new url using that same webview.
对于您而言,这意味着在您的交换机案例中,您应该使用
loadRequest
For you this means that inside your switch case you should use
loadRequest
要解决您的问题,您应该使用<$ c $删除该行c> UIApplication.sharedApplication()。openURL(request.URL!)
To fix your issue you should remove the line using 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
}
}
希望这会有所帮助!祝你有愉快的一天!
Hope this helps! Have a nice day!
这篇关于如何加载Web视图中的URL链接并将其保留在SWIFT中的该Web视图中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!