Значки маркеров листовок периодически исчезают (отображаются как «?») в WKWebView на iOS, даже со значками URI данных.IOS

Программируем под IOS
Ответить
Anonymous
 Значки маркеров листовок периодически исчезают (отображаются как «?») в WKWebView на iOS, даже со значками URI данных.

Сообщение Anonymous »

Контекст
Я встраиваю карту Leaflet в приложение iOS с помощью WKWebView (BeeWare/Toga, но это кажется уровнем WebView, а не специфичным для платформы).
Проблема
Значок маркера Leaflet по умолчанию и тень периодически исчезают и отображаются как '?' заполнители.
Это происходит:
  • После того, как приложение переведено в фоновый режим и возобновлено (теплый старт)
  • И иногда даже при первом/холодном запуске
  • Без ошибок консоли
  • Без сетевых запросов (значки встроено - но проблема остается)
Сама карта работает; плитки загружаются корректно; иногда исчезают только значок маркера и тень.
Подробности настройки
  • Лифлет (стандартная сборка)
  • Карта запускается в локальном HTML-файле, загруженном в WKWebView
  • Значки встраиваются как URI данных Base64 PNG, а не извлекаются из диск или сеть
  • Для маркерных ресурсов не используются относительные пути
Пример (упрощенный):

Код: Выделить всё

// Executed before map creation
L.Icon.Default.mergeOptions({
iconUrl: 'data:image/png;base64,...',
iconRetinaUrl: 'data:image/png;base64,...',
shadowUrl: 'data:image/png;base64,...',
});

// Later
L.marker([lat, lng]).addTo(map);
Несмотря на это, маркер иногда отображается как символ ? вместо изображения.
Наблюдения
  • При сбое и значок, и тень исчезают.
  • Нет ошибки плитки, ошибки изображения или исключения JS
  • Новый холодный запуск, кажется, решает проблему.
  • Это похоже на проблему жизненного цикла или памяти WebKit / WKWebView, а не на проблему с путем листовки
То, что я думаю, что я исключил
  • Проблемы разрешения относительных путей
  • Отсутствуют ресурсы
  • Проблемы с сетью/кешем
  • CSS листовки не загружается
  • Неправильные размеры значков или привязки
Даже при полностью встроенных ресурсах и правильном порядке проблема сохраняется спорадически.
Вопрос
Кто-нибудь сталкивался с исчезновением значков маркеров Leaflet в WKWebView (особенно на iOS) даже при использовании значков data-URI?
В частности:
  • Известна ли это проблема жизненного цикла изображения/очистки памяти WKWebView?
  • Да существует канонический способ сделать значки маркеров Leaflet устойчивыми при переходах между фоновым и передним планом?
  • Является ли явное размещение PNG-маркеров через HTTPS более надежным, чем встроенные ресурсы в этой среде?
  • Существуют ли в WebKit ошибки или рекомендуемые шаблоны для сохранения работоспособности элементов DOM с поддержкой изображений во время приостановки приложения?
Я был бы очень признателен за понимание того, почему это происходит и какое решение для iOS является наиболее стабильным и безопасным для проверки.

Подробнее здесь: https://stackoverflow.com/questions/798 ... iew-on-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»