如何将图像从 WKWebView 下载到不在用户图库 iOS swift 中的应用程序

问题描述 投票:0回答:0

当我使用 WKWebView 时,我的应用程序中有浏览器。当用户长按图像我想要显示自定义操作表而不是默认警报时,我想要的只是当用户点击下载时,我应该在应用程序而不是用户图库中下载。我尝试了不同的方法,但没有一个完全按照我想要的方式工作,下面是我的代码,使用此代码中的长按手势我可以获得一些图像,对于一些图像,它会生成错误,上面写着

Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=SecurityError: The operation is insecure., WKJavaScriptExceptionColumnNumber=198, WKJavaScriptExceptionSourceURL=https://www.google.com/search?q =go&prmd=vni&source=lnms&tbm=isch&sa=X&ved=2ahUKEwj9rKbv3uT9AhXlR_EDHeCxDLMQ_AUoA3oECAIQAw&biw=393&bih=588&dpr=3#imgrc=R7mqldixWHBs7M&imgdii=FBBt5tzUNeKRwM=发生JavaScript异常}

下面是我试图获取图像的代码:

@objc func webViewLongPressed(_ sender: UILongPressGestureRecognizer) { longpress = true if sender.state == .ended { print("Long press Ended") let tapLocation = sender.location(in: webView) let scaleFactor = webView.frame.width / webView.scrollView.contentSize.width let convertedTapLocation = CGPoint(x: tapLocation.x * scaleFactor, y: tapLocation.y * scaleFactor) webView.evaluateJavaScript("var c = document.createElement('canvas'); var ctx = c.getContext('2d'); var img = document.elementFromPoint(\(convertedTapLocation.x), \(convertedTapLocation.y)); ctx.drawImage(img, 0, 0); var value = c.toDataURL(); value.split(',')[1];") { (result, error) in if let imageBase64 = result as? String { let imageData = Data(base64Encoded: imageBase64, options: []) let selectedImage = UIImage(data: imageData!) self.imageView.image = selectedImage } } } else if sender.state == .began { print("Long press detected.") } }
有人可以告诉我我错在哪里或任何其他方法吗?
帮助将不胜感激谢谢:)

javascript ios swift wkwebview wkwebviewconfiguration
© www.soinside.com 2019 - 2024. All rights reserved.