gpt4 book ai didi

ios - Swift3 webview isUserInteractionEnabled 不起作用

转载 作者:行者123 更新时间:2023-11-30 12:23:06 25 4
gpt4 key购买 nike

我的目标是加载远程 html、替换标签并将其显示在 web View 中。一切工作正常,但 isUserInteractionEnabled = true 它不起作用。我知道这一点是因为我无法向下滚动。我认为这是关于在 session.dataTask() 内调用 self.webView.loadHTMLString(html!, baseURL: nil) 。我的问题是:有没有更好的方法来实现这一目标?

   import UIKit

class ViewController: UIViewController {

@IBOutlet weak var webView: UIWebView!

override func viewDidLoad() {
super.viewDidLoad()

let url = "https://example.com"
let requestURL = URL(string:url)
var request = URLRequest(url: requestURL!)

request.httpMethod = "GET"
let session = URLSession.shared

self.webView.isUserInteractionEnabled = true

session.dataTask(with: request) { (data, response, err) in
let html = String(data: data!, encoding: String.Encoding.utf8) as String!
self.webView.loadHTMLString(html!, baseURL: nil)
}.resume()

// webView.loadRequest(request)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

最佳答案

您应该使用 UIWebView的 API 来加载请求,而不是 URLSession :

<罢工>
    override func viewDidLoad() {
super.viewDidLoad()

let url = "https://www.google.com"
let requestURL = URL(string:url)
let request = URLRequest(url: requestURL!)

webView.loadRequest(request)
}

<罢工> 编辑我以为您只是想显示该网页。我相信要想改造html您使用URLSession下载然后渲染它,您可能需要尝试 ascii编码而不是 uft8 .

您也不应该设置 isUserInteractionEnabledUIWebView因为它是它的默认值(检查 storyboard/xib ,当您拖动 UIWebView 类型的对象时,它应该已经被勾选)

但是请注意,以这种方式加载网页会导致其他问题,因为不会下载图像/css/等单独的资源,因此网页在渲染后可能看起来“损坏”

关于ios - Swift3 webview isUserInteractionEnabled 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44549507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com