我希望能够检测UIWebView中标签上的触摸/点击事件。但它看起来不像是对这一事件的回应。有任何想法吗?在iPhone上的UIWebView中检测HTML5中的触摸<video>
videoElement.addEventListener('touchstart', myFunc, false);
也可能是“点击”事件。
我希望能够检测UIWebView中标签上的触摸/点击事件。但它看起来不像是对这一事件的回应。有任何想法吗?在iPhone上的UIWebView中检测HTML5中的触摸<video>
videoElement.addEventListener('touchstart', myFunc, false);
也可能是“点击”事件。
有一种方法可以做到这一点,但它并不漂亮。
UIWebView允许您运行任意的javascript,例如[webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]
。因此,当用户点击videoElement时,您可以使用JavaScript运行设置特定元素的innerHTML,您可以从该函数中获取该元素。
但是,您如何知道何时在Objective-C上运行此功能?那么,有两种选择。首先(虽然我不会建议它,因为它会很慢),您可以设置一个轮询功能,每隔一段时间运行一次以检查功能的值。第二个选项,我认为它可能是最好的选择,实际上是将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:
回调观看该网址。