Xamarin Android Webview: не разрешено загружать локальный ресурс "file: ///android_asset/*.css" источник: (1)? - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть небольшой файл CSS, который я использую с JavaScript, чтобы переопределить CSS на веб-сайте, загруженном в WebView. Я хотел бы загрузить его локально вместо необходимости доступа к нему через Интернет. Я получил JavaScript для идеальной работы, когда файл загружен на временный файловый хост, поэтому он работает нормально, но что-то в отношении разрешений не позволяет мне использовать его в качестве ресурса.

Я попытался установить разрешения, изменить настройки WebView, чтобы всегда разрешать MixedContentMode, пытался использовать LoadData и т. Д., Но всегда выдает проблему «Не разрешено». Актив имеет действие сборки AndroidAsset.

string jsToInject = "javascript: var link=document.createElement('link');link.href='file:///android_asset/newsOverride.css';link.type ='text/css'; link.rel ='stylesheet';document.getElementsByTagName('head')[0].appendChild(link);";

view.LoadUrl(jsToInject);

Когда в поле link.href указан файл, размещенный в сети, он загружает CSS, как и ожидалось. Но когда он выбран в качестве актива, он просто выбрасывает I/chromium(11626): [INFO:CONSOLE(1)] "Not allowed to load local resource: file:///android_asset/newsOverride.css", source: (1)

Все, что я смог найти в этой ошибке - это Xamarin Forms, а не Xamarin Android, любая помощь приветствуется.

1 Ответ

0 голосов
/ 12 апреля 2019

Эта проблема должна реализовывать WebViewClient с переопределением shouldInterceptRequest, как этот поток. Убийства Киткат: не разрешено загружать локальный ресурс: файл: ///android_asset/webkit/android-weberror.png

...