gpt4 book ai didi

ios - UIWebViewDelegate:页面内导航期间未调用 webViewDidFinishLoad

转载 作者:技术小花猫 更新时间:2023-10-29 10:46:20 27 4
gpt4 key购买 nike

我有一个应用程序,用户可以在其中导航一堆本地存储的 HTML 文件。我有一个 UIWebView,使用 UIWebViewDelegate 正确配置。通常,当用户点击链接时,shouldStartLoadWithRequest 会被调用,稍后会调用 webViewDidFinishLoad

但是,如果链接指向与当前显示的同一页面上的 anchor ,则仅调用 shouldStartLoadWithRequestwebViewDidFinishLoad 不会触发。

从某种意义上说,我认为这可能是预期的行为,因为页内导航不应要求重新加载页面。但是,在页内导航完成后,我确实需要一个地方来挂接到调用堆栈。最佳解决方案会在任何类型的导航结束时通知我,无论是来自另一个页面、页面内还是前进/后退操作。

到目前为止,我最好的解决方法是在 shouldStartLoadWithRequest 方法的末尾调用 performSelector: withObject: afterDelay:,但我对此并不满意。

有谁知道我该如何正确解决这个问题?任何见解表示赞赏!

最佳答案

您可以尝试使用 NSURLConnectionDataDelegate,它允许您处理传入的数据。也许您可以通过在 html 文件中添加一个标志来确定页面是否手动加载。

NSURLConnectionDataDelegate Reference

编辑:gist.github.com/buranmert/7304047我写了一段代码并且它起作用了,这可能不是你希望它起作用的方式,但也许它有帮助。每次用户单击带有 anchor 的 URL 时,它都会创建另一个连接,并且当连接完成加载 Web View 时加载数据,这标志着 Web View 完成加载页面的位置。由于您仅使用本地 html 文件,因此我认为创建连接不会产生问题

关于ios - UIWebViewDelegate:页面内导航期间未调用 webViewDidFinishLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15654468/

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