Вы работаете над веб-приложением или над собственным приложением?
Если вы работаете над веб-приложением, вы находитесь в мире боли. Это потому, что вы просто не имеете большого контроля над вещами, которые Mobile Safari не предоставляет сразу.
Если это так, я бы выступил и был честен с заинтересованными сторонами.
Если вы работаете с родным приложением, вы можете прибегнуть к механизму, который предполагает некоторую обратную связь между UIWebView
и ObjC. Это действительно выполнимо.
Идея заключается в следующем:
Вставьте специальные <object>
элементы в ваши документы HTML5, которые вы изготовите сами в соответствии с вашими потребностями, с особой тщательностью соблюдайте соглашение об присвоении имен для нестандартных атрибутов.
Здесь вы можете вставить идентификаторы, пути и другие управляющие переменные в мультимедийные артефакты, которые вы хотите воспроизвести.
Тогда вы могли бы фактически создать некоторый javascript (поверх jQuery, p.e.), Который взаимодействует с ObjC через механизм делегирования на UIWebView
или через HTTP. Я выберу этот вариант ниже.
Скажите, что на $(document).ready()
вы проходите все объекты, которые имеют специальный класс. Класс, который вы тщательно выбираете, чтобы определить все специальные <object>
.
Вы создаете список таких объектов и передаете их в ObjC-часть вашего приложения. Вы можете легко сериализовать такой список, используя JSON.
Тогда в ObjC вы можете делать с ними что хотите. Проигрывайте их через AVPlayer или другие фреймворки всякий раз, когда вы хотите, чтобы они воспроизводились (опять же, вы прибегаете к мосту JS-ObjC, чтобы фактически сигнализировать нативную часть для воспроизведения определенного элемента).
Вы можете «общаться» с ObjC через шаблон делегирования в UIWebView или через HTTP.
После этого у вас будет мост JS - ObjC.
Подход HTTP имеет смысл в некоторых случаях, но он включает много дополнительного кода и требует много ресурсов.
Если вы создаете приложение ObjC и хотите получить дополнительную информацию о том, как на самом деле построить мост ObjC - JS, который соответствует этим потребностям, обратитесь к нам:)
На данный момент я прекращаю эту публикацию, потому что было бы неплохо узнать, является ли она на самом деле родным приложением.
Приветствие.