Для нашего приложения для Android мы хотели бы встроить собственный браузер/механизм рендеринга. Наиболее вероятным кандидатом для этого является Webkit/Chromium. Мы ищем что-то похожее на WebView, по существу, но поддерживаемое браузером (версией), которым мы управляем.
Фон
Значительные части нашего приложения состоят из фрагментов веб-страницы, встроенных в представление (обслуживаемых самим приложением). Мы стараемся сделать это максимально прозрачно (с точки зрения визуального/пользовательского опыта). До сих пор мы использовали WebView для этого, и это работает по большей части. За исключением случаев, когда этого не происходит.
Некоторые производители телефонов, к сожалению, решили настроить стандартный браузер Android здесь и там. В некоторых случаях это нарушает наше приложение или делает факт, что мы вставляем веб-страницу более заметным.
Наша идея
Мы хотели бы иметь компонент, похожий на WebView, но где мы контролируем, какая версия Webkit/Chromium (или какой-либо другой рендеринг двигатель). Это не обязательно должно быть последней и самой большой версией. Более важно, чтобы мы могли заставить наше приложение последовательно работать на любом устройстве Android.
Пока
Наши исследования пока не принесли ничего полезного. Мы обнаружили три мертвых попытки портировать Webkit на NDK (для открытого порта Webkit для Android используются функции, недоступные в NDK, и, следовательно, разработчики приложений):
- Порт Android Webkit от компании 100 (без обновления более двух лет)
- mogo-browser (их последняя ревизия заключалась в удалении всего исходного кода)
- NDK Webkit (официально оставленный его автором)
Посмотрев на StackOverflow, мы также нашли ряд подобных вопросов, большинство из которых решаются, указывая на WebView (мы уже делаем это, и это недостаточно хорошо)
- компонент Webkit для Android
- Вставить базовый WebKit + V8 в мое приложение
- Внедрение новой версии WebKit с Android-приложением
В настоящее время мы изучаем, может ли Chromium для Android (или его части) превращаться в библиотеку, которую может использовать наше приложение. Кто-нибудь еще это сделал?
Update
Посмотрев проект chromeview на GitHub (принятый ответ), мы решили, что нам лучше дождаться, когда Google выпустит веб-браузер на основе Chrome на будущих устройствах Android. Механизм рендеринга Chromium оказывается довольно большим (~ 40 МБ), что не оставляет много места для реального приложения: (