簡體   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