iOS Swift UIWebView Link 坐标

iOS Swift UIWebView Link Coordinates

我需要获取在 UIWebView 中点击的 link 的坐标。我尝试使用 TapGestureRecognizer,但它不会在 link 被点击时触发。我以为我可以通过 stringByEvaluatingJavaScriptFromString 从 Javascript 获取坐标,但我也无法让它工作。我怎样才能做到这一点?

UIView hitTest 可能有用。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event ;

在您的 Web 视图中覆盖它(或使用类别)可能允许您处理 Web 视图包含的项目的点击坐标,这些项目不会被手势识别器传递给超级视图

一个 Swift 相当于这个答案:How to detect touch on UIWebView.

import UIKit

class ViewController: UIViewController, UIGestureRecognizerDelegate {

    let myWebView = UIWebView()

    override func viewDidLoad() {
        super.viewDidLoad()

        myWebView.frame = self.view.frame
        self.view.addSubview(myWebView)
        myWebView.loadRequest(NSURLRequest(URL: NSURL(string: "https://whosebug.com")!))

        let webViewTapped = UITapGestureRecognizer(target: self, action: "tapAction:")
        webViewTapped.numberOfTouchesRequired = 1
        webViewTapped.delegate = self
        myWebView.addGestureRecognizer(webViewTapped)
    }

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }

    func tapAction(sender: UIGestureRecognizer) {
        let point = sender.locationInView(self.view)
        println(point.x)
        println(point.y)
    }