Отслеживание события воспроизведения в видео на мобильном Safari

#iphone #ios #ipad

#iPhone #iOS #iPad

Вопрос:

У меня есть приложение для iOS, которое содержит много локального веб-контента. Часть этого контента представляет собой видео / аудио. У меня есть событие щелчка, прикрепленное к тегам видео и аудио, которое запускает URL-адрес аналитики, который я собираюсь просмотреть в UIWebView. Проблема в том, что событие щелчка не регистрируется. Я предполагаю, что это связано с тем, что iOS заменяет видео своим специальным видеопроигрывателем. Как мне перехватить событие воспроизведения, чтобы я мог что-то с ним сделать. Вот мой код jQuery для события щелчка.

  function videoClick() {
    $("video").click(function () {
        alert("here");
        //document.location = "ignoretap:///";
        var videoTitle = $(this).attr("data-mediatitle");
        var videoSrc = $(this).children("source").attr("src");
        if (videoTitle != null amp;amp; videoTitle.length > 0) {
            document.location = "analytics:///"   "page"   videoTitle;
        }
        else {
            document.location = "analytics:///"   "page"   videoSrc;
        }
    });
}
  

Вот мой HTML-код для видео

  <video width="100%" controls="controls" data-mediatitle="testing">
      <source src="StoryOfIyal.mp4" type="video/mp4" poster="IyalVideo.htm-iyalvideoscreenshot_lg.jpg"></source>
      Your Browser does not support the video tag
 </video>
  

Ответ №1:

Понял это. Вы должны привязываться к событию «play» в jQuery, а не к событию click. Вот обновленная функция.

  function videoClick() {
    $("video").bind('play', function () {
        alert("here");
        //document.location = "ignoretap:///";
        var videoTitle = $(this).attr("data-mediatitle");
        var videoSrc = $(this).children("source").attr("src");
        if (videoTitle != null amp;amp; videoTitle.length > 0) {
            document.location = "analytics:///"   "page"   videoTitle;
        }
        else {
            document.location = "analytics:///"   "page"   videoSrc;
        }
    });
}