我希望能够在UIWebView中检测标签上的触摸/点击事件。但它看起来并不像它对那个事件做出反应。有什么想法吗?
videoElement.addEventListener('touchstart', myFunc, false);
也可能是“点击”事件。
答案 0 :(得分:0)
有一种方法可以做到这一点,但它并不漂亮。
UIWebView允许您运行任意javascript,例如[webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]
。因此,当用户点击videoElement时,你可以运行javascript来设置特定元素的innerHTML,你可以从这个函数中获取它。
但是,您如何知道何时在Objective-C端运行此功能?嗯,有两种选择。首先(虽然我不建议它,因为它会很慢),你可以设置一个轮询函数,它经常运行以检查stringByEvaluatingJavascriptFromString:
函数的值。第二个选项,我认为可能是最好的选项,实际上是将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
}
}
答案 1 :(得分:0)
设置您的视频元素以在点按时加载特定网址(使用onclick
或仅使用普通锚点),然后在网络视图的-webView:shouldStartLoadWithRequest:navigationType:
中实施delegate
回调以观察URL。