首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在WKWebView中注入javascript以获取所单击图像的src属性

在WKWebView中注入JavaScript以获取所单击图像的src属性,可以通过以下步骤实现:

  1. 首先,需要创建一个WKWebView对象,并加载一个网页。
  2. 在WKWebView的代理方法webView(_:decidePolicyFor:decisionHandler:)中,拦截网页的点击事件。
  3. 当用户点击网页中的图片时,通过JavaScript注入的方式获取该图片的src属性。
  4. 将获取到的src属性传递给原生代码进行处理或展示。

以下是一个示例代码:

代码语言:txt
复制
import WebKit

class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {
    var webView: WKWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let configuration = WKWebViewConfiguration()
        webView = WKWebView(frame: view.bounds, configuration: configuration)
        webView.navigationDelegate = self
        webView.uiDelegate = self
        
        view.addSubview(webView)
        
        if let url = URL(string: "https://example.com") {
            let request = URLRequest(url: url)
            webView.load(request)
        }
    }
    
    // 拦截网页的点击事件
    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        if navigationAction.navigationType == .linkActivated {
            // 获取点击的元素
            let element = navigationAction.targetFrame?.request.url?.absoluteString
            
            // 判断是否为图片
            if let element = element, element.hasSuffix(".jpg") || element.hasSuffix(".png") {
                // 注入JavaScript获取图片的src属性
                let script = "var imgSrc = document.elementFromPoint(\(navigationAction.location.x), \(navigationAction.location.y)).src; imgSrc;"
                webView.evaluateJavaScript(script) { (result, error) in
                    if let src = result as? String {
                        // 处理或展示获取到的src属性
                        print("点击的图片src属性为:\(src)")
                    }
                }
            }
        }
        
        decisionHandler(.allow)
    }
}

这段代码创建了一个WKWebView对象,并加载了一个网页。在webView(_:decidePolicyFor:decisionHandler:)方法中,拦截了网页的点击事件,并判断点击的元素是否为图片。如果是图片,则通过JavaScript注入的方式获取该图片的src属性,并将其传递给原生代码进行处理或展示。

对于这个问题,腾讯云没有特定的产品或服务与之直接相关。但是,腾讯云提供了一系列云计算产品和服务,如云服务器、云数据库、云存储等,可以帮助开发者构建和部署各种应用。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券