Я пытаюсь вызвать url через серверный вызов, поэтому каждый раз, когда я нажимаю на google.com, например, я нажимаю на сервере с URL в качестве параметра, и он отправляет мне xml в качестве ответа, что делает загрузить в веб-просмотр. Однако, когда я звоню на сервер, чтобы загрузить логотип или рисунок, который будет частью страницы google.com, API возвращает некоторую строку base64, но png никогда не загружается. Он отображается как разорванное изображение.
То, что я сделал до сих пор:
- У меня есть собственный класс, который расширяет WebViewClient
- Класс переопределяет метод
shouldInterceptRequest
- Я называю API с URL-адресом, то есть,
request.getUrl().toString()
- Я возвращаю
WebResourceResponse
вот так: return new WebResourceResponse("image/png", "UTF-8", new ByteArrayInputStream(bytes_here));
. Поэтому у меня есть разные типы MIME для разных типов файлов, которые могут загружаться.
- В случае данных html тип mime будет "text / html"
- Когда будут загружаться html-данные, я использую этот фрагмент кода для загрузки данных в веб-просмотр:
webView?.loadDataWithBaseURL(url, response, "text/html", "UTF-8", url)
, использование webView?.loadData
не загружает веб-просмотр, а вместо этого загружает его в адресную строку, которая на самом деле не что бы я хотел.
- Класс также переопределяет метод
shouldOverrideUrlLoading
, который возвращает true (я даже пытался вернуть false, если это поможет)
Есть ли способ загрузить png base64 или байты в веб-просмотр, куда он должен быть загружен? Или заставить веб-просмотр работать нормально и загружать pngs или другие сценарии css или js самостоятельно?
Я попытался использовать прокси-сервер и настроил его на веб-просмотр, но это также влияет на все другие запросы, что я не хотел бы делать.
Или, есть ли другой способ сделать серверные вызовы для каждого обращения по URL через прокси? Я тоже пробовал маленький прокси, но для вызовов google.com или https не удается загрузить данные обратно и выдает исключение SSLE, а иногда просто закрывает соединение, прежде чем отправлять данные обратно.