Есть WebView который подгружает локальный (хранящийся в память приложения) файл index.html
web.loadUrl("file://" + getApplicationContext().getFilesDir().getAbsolutePath() + "/index.html");
внутри этого html подключается обычные js скрипты, которые тянут данные из интернета.
на API 26 все работает отлично. НО! когда я меняю targetSdkVersion на 28 ничего не происходит. данные из интернета просто не подключаются.
в чем проблема?
Современный Android WebView
как и многие другие VebWiew
во всяких фреймворках вроде JavaFx
или Qt
используют в качестве движка chromium
.
Вот ссылки на официальную документацию, как можно удаленно при помощи десктопного хрома отлаживать такие штуковины :)
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
PS: уж простите но я не стал это переводить и писать в тексте сообщения. В двух словах - надо включить RemoteDebugging
в десктопном хроме, USB отладку
на андроиде и соединить устройства кабелем. После этого в десктопном хроме можно будет увидеть в отладчике то, что происходит на девайсе.
Огромное спасибо Stranger in the Q за помощь и вот, что нашлось:
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews
с помощью этого метода я выяснил что у меня в WebView вылетает ошибка Failed to load resource: net::ERR_CLEARTEXT_NOT_PERMITTED
а она в свою очередь решается через AndroidManifest.xml
добавлением строки:
<application
....
android:usesCleartextTraffic="true"
....>
Погуглив я нашел следующую информацию (поправьте меня, если я понял что-то не так!):
В Android 8 и выше эту функцию отключили (т.е. раньше она всегда была true
, а теперь по умолчанию false
)
Эта функция отвечает за подключение к HTTP ресурсам. Значит, чтобы получать данные или просто отобразить сайт в WebView надо просто прописать это в Манифесте. (странно, что это не permission)
для HTTPS сайтов этого не требуется.
все верно?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я использую Spring-ws для написания SOAP-клиентаПри этом на сервере используются две wsdl для тестовой и продакшн сред, одинаковые по содержанию,...
В чем проблема? Comple error : Compilation failed; see the compiler error output for details
TypeError: Cannot read property 'firstChild' of null