【发布时间】:2017-06-25 18:34:22
【问题描述】:
我用 Xcode 和 Swift 制作了一个 iOS 应用程序。
我想在 Safari 浏览器中打开特定的超链接,在 WebView 本身中还有其他的。
为此,我必须检查超链接何时被点击。
这是我目前的代码:
//
// PushViewController.swift
// App
//
//
import UIKit
class PushViewController: UIViewController, UIWebViewDelegate {
@IBOutlet var openpushmessage: UIWebView!
var weburl:String = "http://www.example.com"
override func viewDidLoad() {
super.viewDidLoad()
let url: NSURL = NSURL(string: weburl)!
let requestURL: NSURLRequest = NSURLRequest(URL: url)
openpushmessage.loadRequest(requestURL)
}
override func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == .linkClicked
{
print("You clicked a hypelink!")
}
return true
}
}
viewDidLoad() 中的代码从我的服务器打开加载主 URL (http://www.example.com)。效果很好。
override fun webView[…] 应该检测是否点击了超链接,然后再检测print("You clicked a hypelink!")。
但不幸的是,我收到以下错误:
我做错了什么?如何摆脱这些错误?
【问题讨论】:
-
您尝试清理项目了吗?同时删除 override 关键字。
-
@Priyal 好的,我删除了
override并清理了项目,但还是一样。我现在还得到:Use of undeclared type 'URLRequest' -
我复制了你的确切代码。解决了最终代码为:
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { if navigationType == .linkClicked { print("You clicked a hypelink!") } return true }之后的建议,并且它没有给出任何错误或警告。我正在使用 swift3 所以必须解决警告。 -
您使用的是哪个 swift 版本?
-
我还在使用 Swift 2。知道我能做什么吗?
标签: ios xcode hyperlink uiwebview shouldstartload