[英]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.