我的网页视图的网页底部有链接。我有办法处理它们被点击,但它所做的只是将它们打开到一个新的Safari浏览器中。这不是我想要的。我希望他们留在网页视图中,让我轻松地浏览它们。有没有办法做到这一点?
我尝试过使用常规的网络视图,但是底部的链接无效。
这是我到目前为止所做的:
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
}
}
答案 0 :(得分:3)
将代表提供给您的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文件中添加此属性。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
答案 1 :(得分:2)
在webview委托中,您将要使用相同的webview导航到新网址。
对你而言,这意味着你应该使用你的开关盒内
Test.Print();
要解决您的问题,您应该使用loadRequest
并将其替换为UIApplication.sharedApplication().openURL(request.URL!)
loadRequest
希望这有帮助!祝你有愉快的一天!