【问题标题】:webView:shouldStartLoadWithRequest:navigationType: not always triggeredwebView:shouldStartLoadWithRequest:navigationType: 不总是触发
【发布时间】:2011-03-01 22:55:03
【问题描述】:

从下面的截屏视频中可以看出,我正忙着让 webView:shouldStartLoadWithRequest:navigationType: 被一致地调用。

在下面的截屏视频中,您将看到一个带有三个尺寸选择器的 UIWebview。单击这三个中的任何一个时,都会触发 webView:shouldStartLoadWithRequest:navigationType: 应该。不幸的是,这似乎并不总是发生。事件似乎并非始终如一地发生。

http://screencast.com/t/ww6uwP1Je

那么是什么原因造成的呢?是否有 UIWebViewDelegate 的错误方法,我可以使用它来了解内部发生的一些事情?

【问题讨论】:

    标签: iphone delegates uiwebview webview


    【解决方案1】:

    您似乎没有正确设置 UIWebViewDelegate。我在截屏视频中注意到,一旦您单击“L”(假定为“大”)按钮,它就会起作用。该方法是否设置委托?如果没有,请粘贴显示问题的代码 sn-p。

    【讨论】:

    • 希望他的代表不是根据页面中按下的按钮分配的。委托属于网络视图本身,而不是任何随机页面。
    • 委托在 xib 中分配。我从来没有直接在代码中设置它。
    • 这里是相关代码的代码示例。这是一个从 mustache 模板加载的 webview:gist.github.com/aebb903b13a6e44631a2 链接被触发,并且代理永远不会被代码触及。
    【解决方案2】:

    由于其他两个按钮生成对代理的调用,我们知道您的 Web 视图代理已正确分配。

    对失败的最简单解释是S 按钮没有在 HTML 中正确配置,并且没有生成加载 Web 视图的实际请求。在没有请求的情况下,委托方法一开始就不会被调用。

    【讨论】:

    • 实际上,如果您注意到 - 稍后在视频中,“S”按钮确实有效!
    【解决方案3】:

    好的,事实证明我没有为任何人提供足够的信息来回答这个问题 - 我什至从上面给出的 webview 要点中删除了相关部分。对不起!

    这是完整的模板:

    https://gist.github.com/521d17e0377133725d9a

    原来在链接周围的 li 上有一个 onclick 处理程序(请参阅上面的要点 - “#sizes_slider li”)。删除那个 onclick 处理程序就可以了。

    【讨论】:

    • 澄清一下,问题出在页面的 HTML 而不是 WebView 的代码?
    猜你喜欢
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    相关资源
    最近更新 更多