Android WebView: вызов shouldOverrideUrlLoading, когда svg или webm находятся в теге объекта в HTML

Я тестирую странное поведение WebView в своем приложении для Android:

когда файл HTML, содержащий

<object> 

загружаются элементы, указывающие на файлы svg и webm (например), затем WebView вызывает shouldOverrideUrlLoading, и я вижу, что старый URL-адрес (getUrl()) является текущим файлом, новый URL-адрес представляет собой файл содержимого svg/webm (для каждого вхождения ).

Этого не происходит, если контент представляет собой mp4 или изображение.

Как избежать запроса WebView на «переход» к содержимому, когда элементы объекта находятся в HTML? Существуют ли другие элементы, такие как

<embed> 

например, это тоже может вызвать такие проблемы?


person P5music    schedule 17.10.2014    source источник


Ответы (1)


Нужно поймать событие загрузки тела и установить какую-то переменную в true только после того, как это событие сработает; в то время как переменная имеет значение false, shouldOverrideUrlLoading должна возвращаться сразу после вызова.

Чтобы получить это, JavaScriptInterface должен быть установлен в WebView с помощью подходящего метода, а событие загрузки тела должно быть установлено в HTML посредством внедрения javascript, когда вызывается метод onProgressChanged с progress==100 или вызывается onPageFinished.

Это сработало для меня.

person P5music    schedule 27.10.2014