确定 UIWebView 是不是处理事件
Posted
技术标签:
【中文标题】确定 UIWebView 是不是处理事件【英文标题】:Determine if UIWebView handled event确定 UIWebView 是否处理事件 【发布时间】:2013-08-24 06:55:35 【问题描述】:当用户在 UIWebView 中点击时,我想显示/隐藏导航栏。只有当 UIWebView 没有对这个事件做出任何响应(选择的文本,调用的 javascript)时,我才想这样做。
我找到了确定触摸坐标的文章: http://mithin.wordpress.com/2009/08/26/detecting-taps-and-events-on-uiwebview-the-right-way/ 但是,如果 UIWebView 内部发生了什么事情,则没有任何信息。
编辑:这个解决方案 Intercept unused tap events in a UIWebView 在我的情况下并不总是有效,我有非常复杂的带有 iframe 的 html 结构。
【问题讨论】:
wyldco.com/blog/2010/11/how-to-capture-touches-over-a-uiwebview你能看看这个链接吗... 我看过这个链接,作者展示了如何拦截触摸,而不是如何处理 UIWebView 是否响应事件。 【参考方案1】:我认为您可以利用UIWebViewDelegate 并实现以下方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
和
- (void)webViewDidStartLoad:(UIWebView *)webView
管理是否显示导航栏或隐藏它。
【讨论】:
这些回调不会被所有的Js交互调用,所以这里不会涵盖所有的情况。以上是关于确定 UIWebView 是不是处理事件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 uiwebview iOS 中处理 YouTube 视频事件(开始、结束等)