Comments 30
Что такое экспрессионализм? о_О Опечатка?
Да опечатка. Спасибо, исправлю.
Вы на ближайшем fronttalks будите об этом же говорить?
И да, и нет. Это один из частных случаев. На fronttalks будет про верстку и архитектуру больше. Буду JS в EXE`шники загонять на XP без NodeJS =)
О! Расскажите, пожалуйста, потом об этом здесь? А то до Екатеринбурга далеко ехать…
Потом будет пост на Хабре со всеми плюшками. А то как-то нехорошо получится наперед постить.
а в чем сложности-то, когда в винде есть IE? Еще с IE4 эти функции в MSHTML имеются — бери да дёргай… собственно хоть на xp, хоть на новейших…
Есть как минимум 2 нативных способа получить JS среду в exe без nodejs
1) использовать jscript.exe (хотя там поддержки стандартов почти нету)
2) использовать PhantomJS (это такой WebView+V8 на стероидах, написанный на чистом Qt)
1) использовать jscript.exe (хотя там поддержки стандартов почти нету)
2) использовать PhantomJS (это такой WebView+V8 на стероидах, написанный на чистом Qt)
PhantomJS совсем не по этой части. Главное его достоинство — ему не требуется графическая система. Его нельзя использовать для упаковки веб-приложений. Основной сценарий его использование — это автотестирование.
изначально речь шла просто про JavaScript — если нужно с графической частью тоже — то есть Titanium и node-webkit
Как же хочется прочитать где-то в одном месте что могут различные упаковщики для запуска WebApp в виде самостоятельных приложений: Titanium, PhoneGap, node-webkit… А то вариантов вроде много, но все проекты, что видел, затачиваются под конкретный способ упаковки и конкретную среду исполнения (например, свежий гитхабовский атом), вместо того, чтобы писать простой WebApp, а потом запаковать под разные платформы. По-моему было бы круто если кто-то написал пост с описанием и сравнением. Если уже есть такое, то киньте, пожалуйста, ссылку.
А зачем игре получать IMEI? Просто интересно
Приложение делалось, очевидно, для телеканала Disney или его поклонников?
Подводный камень: В Android < 4 шрифты могут расползтись.
А под iOS 7 — наоборот, «сползтись», причем в совершенно неожиданных местах. Проблема интересная — iOS в новой версии начал обрабатывать шрифтовые кернинг-пары (насколько я, как программист, понял из рассказа специалиста — это пара букв и заданный создателем шрифта интервал между ними) и в них иногда встречаются неадекватные значения. Может быть, корни проблемы с Android < 4 где-то там же.
Попробуйте посмотреть в сторону Qt на Android. Пока только одним глазком — многое не готово, конечно, но мой опыт меня порадовал)
Есть еще несколько важных моментов.
Для отключения контекстных меню по долгому клику:
Для исправления бага с sublings и псевдоклассами CSS в более старых версиях webkit на Android:
И самое важное, аппаратное ускорение, которое по умолчанию отключено! В
Для отключения контекстных меню по долгому клику:
webView.setLongClickable(false);
Для исправления бага с sublings и псевдоклассами CSS в более старых версиях webkit на Android:
body { -webkit-animation: bugfix infinite 1s; }
@-webkit-keyframes bugfix {
from { padding: 0; }
to { padding: 0; }
}
И самое важное, аппаратное ускорение, которое по умолчанию отключено! В
AndroidManifest.xml
нужно добавить следующий параметр для <activity>
:
android:hardwareAccelerated="true"
Добавлю свои 5 копеек:
Подводный камень: В Android < 4.4 в WebView не работают вебсокеты :(
Если вы используете PhoneGap, то есть плагины исправляющие этот недостаток:
github.com/FreakDev/PhoneGap-Android-HTML5-WebSocket
github.com/anismiles/websocket-android-phonegap
github.com/mkuklis/phonegap-websocket
Подводный камень: В Android < 4.4 в WebView не работают вебсокеты :(
Если вы используете PhoneGap, то есть плагины исправляющие этот недостаток:
github.com/FreakDev/PhoneGap-Android-HTML5-WebSocket
github.com/anismiles/websocket-android-phonegap
github.com/mkuklis/phonegap-websocket
А откуда инфа, что тег аудио не работает в андроидовских webview? То что запустить аудио нельзя вне потока, инициализируемого юзером, это да (кроме нюанса, который заключается в том, что поток, запущенный с помощью loadUrl тоже имеет права пользовательского), что проигрывается только один файл одновременно, это тоже да, но в целом пашет же.
Столкнулся с такой фичей браузера Андроида 4.x: после событий touchstart — touchend он всегда посылает mousedown — mouseup (после интервала в 300мс), даже если было запрошено event.preventDefault(), event.stopPropagation() или вообще удален handler. Это сильно мешает логике, если приложение хочет обрабатывать и мышку и тачи. Хорошего решения нет, кроме как отслеживать если mouseup пришел в интервале до 400мс после touchend с похожими координатами, то игнорировать его.
Вот за такое API
Разработчика нужноп… дить кирзачами отрывать руки дать в репу заставить самого этим пользоваться.
Этож просто какая-то жесть.
А по итогу-то что получается — только Java, только хардкор? Как не посмотрю — все кривенько :(
vw.setVerticalScrollBarEnabled(false);
Разработчика нужно
Этож просто какая-то жесть.
А по итогу-то что получается — только Java, только хардкор? Как не посмотрю — все кривенько :(
А по итогу-то что получается — только Java, только хардкор?
Ну в идеале разработчики PhoneGap должны были учесть эти ньюансы и уже готовое решение дать. Но что поделать :(
Этож просто какая-то жесть.
Объясните пожалуйста, что не так. Что бы на будущее учесть.
Ох, как-то привык в JS к тому что создать объект ничего не стоит, так что совсем красиво не сделать, в яве хешмапы жуть какая-то (как-то раньше пристально не смотрел на нее).
А вообще конечно по нормальному нужно вести от общего к частному
Что все равно ужасно, но хоть логичнее по структуре.
А вообще конечно по нормальному нужно вести от общего к частному
vw.setScrollBarVerticalEnabled(false);
Что все равно ужасно, но хоть логичнее по структуре.
Очень близкая тема! Сам с PhoneGap и Samsung Galaxy Note 2 воевал.
Всё очень и очень сырое, даже вертикальный скролл делается через одно место. Правда сейчас верстаю под WebView под iOS и там тоже всё очень специфично (а работать приходится с multi-column, flex-box и прочими радостями).
Пока на этих платформах ИМХО html5 стек готов но в очень ограниченом применении. Очень надеюсь на Qt.
Всё очень и очень сырое, даже вертикальный скролл делается через одно место. Правда сейчас верстаю под WebView под iOS и там тоже всё очень специфично (а работать приходится с multi-column, flex-box и прочими радостями).
Пока на этих платформах ИМХО html5 стек готов но в очень ограниченом применении. Очень надеюсь на Qt.
Sign up to leave a comment.
JavaScript to APK. Подводные камни разработки под Android для тех, кого задолбал PhoneGap. Построение мостов из Java в JavaScript