UIwebView 链接延迟

Posted

技术标签:

【中文标题】UIwebView 链接延迟【英文标题】:UIwebView links delay 【发布时间】:2011-06-24 16:59:33 【问题描述】:

我有一个 UIWebView,里面有一些链接。当我点击链接时,在加载链接之前会有大约 2-3 秒的延迟。这是假设的方式还是我可以更改的设置? 谢谢。

【问题讨论】:

延迟很烦人,但很有趣的是,可能半秒的延迟在人们的脑海中变成了“2-3秒”。 【参考方案1】:

ios5 中,属于 UIWebViewUIScrollView 已公开,以便您可以更改其行为。因此,要消除点击延迟,您只需执行以下操作:

[webView.scrollView setDelaysContentTouches:NO]

这样您就不必使用任何 javascript 库来消除延迟。

作为奖励,您可以通过更改 decelerationRate 使 UIWebView 中的滚动感觉更加原生:

[webView.scrollView setDecelerationRate:UIScrollViewDecelerationRateNormal]

【讨论】:

不幸的是 setDelaysContentTouches 是触地延迟,而点击延迟是由于等待双击造成的。此解决方案似乎无法解决此问题。 这解决了我的确切问题。并且 +1 以获得更多原生滚动!【参考方案2】:

如果您的意思是点击链接后会有延迟链接突出显示之前,这与 UIWebView 处理触摸的方式有关。我怀疑这会导致整个 2-3 秒的延迟,但无论如何请参考this post 将其删除。

如果您的意思是单击链接后需要 2-3 秒才能看到呈现的页面,那么(不幸的是)这是正常的。 UIWebView 以渲染速度慢而闻名,即使是一个简单的页面。

【讨论】:

您还可以使用FastClick 解决 UIWebView 触摸延迟问题。【参考方案3】:

检查你是否在主线程上调用加载方法。如果您在模拟器上对其进行测试,那么在辅助线程上调用方法需要一些时间来执行,而不是崩溃或抛出异常。用performSelectorOnMainThread 方法替换此类调用(如果有)。

【讨论】:

以上是关于UIwebView 链接延迟的主要内容,如果未能解决你的问题,请参考以下文章

UIWebView 和 UIPageViewController

UIWebview 未检测到链接

UIWebView 打开外部链接

禁用UIWebView中的链接?

点击链接时关于UIWebview的问题

mailto:UIWebView 中的链接 - 不起作用