【发布时间】:2016-10-20 03:26:44
【问题描述】:
我有一个网页视图,其底部有一个带有链接的网页。我有办法处理它们被点击,但它所做的只是将它们打开到一个新的 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 中的链接
-
如果你不想在 Safari 中打开链接,那为什么还要截取链接并在 Safari 中打开呢?
标签: ios swift uiwebview uiwebviewdelegate