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 само след като това събитие бъде задействано; докато променливата е фалшива, shouldOverrideUrlLoading трябва да се върне веднага след извикване.

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

При мен се получи.

person P5music    schedule 27.10.2014