2013-05-08 6 views
1

Я работаю над приложением Android/Cordova со встроенным видом карты, используя leaflet.js. Устройство, которое я использую, это Nexus 7. Карта загружается с использованием TileLayer, и все хорошо, пока ... Я нажимаю элемент управления выбором формы в форме и появляется собственный сборщик Android. Оттуда на карте плитки сдвинуты на несколько пикселей как в направлении x, так и в направлении y. Когда я запускаю веб-приложение в браузере Chrome на том же устройстве, проблем нет. Кажется изолированным с Cordova DroidGap или Android WebView. Похоже, что что-то странное происходит либо в контейнере DOM, либо в WebView, который отбрасывает фрагменты изображений. Пробовал проверять размер контейнера карты до и после нажатия кнопки выбора, но нет различия. Пробовал протоколировать DOM и то же самое в обоих случаях, когда он идентичен.Андроид/Кордова WebView собственный выбор HTML вызывает странное поведение DOM

У кого-нибудь есть предложения, где искать?

Есть ли способ отключить этот собственный выбор?

+0

При ближайшем рассмотрении выглядит, что плитки только сдвигаются по оси y. – whyvez

+0

Пробовал выбрать выпадающий список бутстрапов вместо выбора, но получил такое же поведение. Похоже, плитки слегка увеличиваются. – whyvez

ответ

1

WOOOOHOOO! Нашел это ... или решение. Все еще не слишком уверен, в чем корень проблемы. Чтобы устранить проблему, вам необходимо установить глобальный переключатель L_DISABLE_3D листка.

Я могу воспроизвести проблему в урезанной версии моего приложения, в которой были только загрузочные, листовки и кордовы в качестве зависимостей. Приложение имеет навигационную панель с раскрывающимся навигационным элементом в первой строке и карточкой листовки во второй строке. Проблема возникает только тогда, когда ее размещают в приложении cordova, т. Е. Webview.

Примечание. Я не могу воспроизвести проблему ни в мобильном, ни в настольном браузере.

sample test app

Чтобы воспроизвести проблему, вам нужно 1). нажмите на раскрывающееся меню навигационной панели (Account), чтобы меню появилось 2). затем коснитесь карты. Результатом будет иллюзия, что плитка будет расти в размерах и, следовательно, исказить карту, то есть дороги больше не выстраиваются в линию, а метки становятся обрезанными. Я зарегистрировал размер изображения до и после триггера и получил тот же размер. Это заставляет меня думать, что проблема связана с плотностью пикселей или каким-либо другим графическим явлением, которое я не понимаю.

На данный момент неясно, относится ли проблема к листовки, кордове или собственному веб-обозревателю Android.

ОБНОВЛЕНИЕ: см. Комментарии ниже для лучшего решения.

+0

Также был создан рекламный листок [выпуск] (https://github.com/Leaflet/Leaflet/issues/1666). – whyvez

+0

Благодаря github @ mourner за то, что это актуальная проблема с буклетами и что есть лучшие решения. См. [Брошюра № 161] (https://github.com/Leaflet/Leaflet/issues/161). Решение, предложенное выше re: L_DISABLE_3d, не является правильным решением, поскольку оно делает непригодную карту скольжения. Я уточню свой ответ. – whyvez

 Смежные вопросы

  • Нет связанных вопросов^_^