繁体   English   中英

检测HTML5上的触摸 <video> 在iPhone上的UIWebView中

[英]Detecting touches on an HTML5 <video> in a UIWebView on the iPhone

我希望能够在UIWebView中检测标签上的触摸/点击事件。 但它看起来并不像它对那个事件做出反应。 有任何想法吗?

videoElement.addEventListener('touchstart', myFunc, false);

也可能是'点击'事件。

有一种方法可以做到这一点,但它并不漂亮。

UIWebView允许您运行任意javascript,例如[webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"] 因此,当用户点击videoElement时,您可以运行javascript来设置特定元素的innerHTML,您可以从该函数中获取该元素。

但是,您如何知道何时在Objective-C端运行此功能? 嗯,有两种选择。 首先(虽然我不建议它,因为它会很慢),你可以设置一个轮询函数,它经常运行以检查stringByEvaluatingJavascriptFromString: function的值。 第二个选项,我认为可能是最好的选项,实际上是将WebView子类化为观察WebView上的触摸。 因此,您可以覆盖以下函数:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesEnded:touches withEvent:event];
    NSString *string = [self stringByEvaluatingJavascriptFromString:@"document.getElementById('videoTapped').innerHTML"]
    if ([string isEqual:@"Something"]) {
        // do something here
    }
} 

设置您的视频元素以在点击时加载特定的URL(使用onclick或只是一个普通锚点),然后在webview的delegate实现-webView:shouldStartLoadWithRequest:navigationType: callback以监视该URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM