如何加载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") }
输出:
不要忘记在.plist文件中添加此属性。
NSAppTransportSecurity NSAllowsArbitraryLoads
- UIAccessibility更改UITableView配音公告(第#行)
- 在iOS视图上点击检测,无需重复。
- 无法从iOS 7的App Store收据中获取original_application_version
- 移动背景,iOS 5.1上的OpenGL ES崩溃
- 通过layoutSubviews => UIAlertButton类未find自定义UIAlertButton
- Hackhactons中的iOS开发与未知的开发者? 如何共享Xcode和debugging工具给没有OSX设备的人?
- 你如何检测移动Safari上的3G与WiFi连接?
- 在UINavigationbar中显示计数器等通知标志
- 我想切换时间洗涤器做15分钟的间隔