Android WebView выбрасывает «запросы на кросс-поиск, поддерживаемые только для исключения http» при попытке загрузить ресурс с диска

Я разработал одностраничную игру в html / js, и я пытаюсь разместить ее в веб-обозревателе Android. У меня есть папка src/main/assets/www/ и эта строка кода для загрузки моего приложения:

 mWebView.loadUrl("file:///android_asset/www/index.html"); 

app.js файл app.js который является моей игрой. Когда я пытаюсь сделать запрос xhr из app.js для получения assets/myimage.svg (физическое местоположение src/main/assets/www/assets/myimage.svg ):

 var xhr = new XMLHttpRequest(); xhr.open('get', 'assets/myimage.svg', true); xhr.send(); 

Я получаю эту ошибку: cross origin requests are only supported for http . Почему это запрос перекрестного происхождения? Что я могу сделать, чтобы исправить это? Я не могу разместить svg на веб-сервере http и не могу app.js его в app.js – он должен быть загружен с диска.

Solutions Collecting From Web of "Android WebView выбрасывает «запросы на кросс-поиск, поддерживаемые только для исключения http» при попытке загрузить ресурс с диска"

Не уверен, но вы можете попробовать эти шаги и посмотреть, помогает ли это:

A) Инициализируйте свой WebView:

B) получить настройки WebView:

 WebSettings settings = _webView.getSettings(); 

C) установить следующие настройки:

 settings.setAllowFileAccessFromFileURLs(true); settings.setAllowUniversalAccessFromFileURLs(true); 

D) теперь вы можете загрузить свой html-файл стандартным способом:

 mWebView.loadUrl("file:///android_asset/www/index.html"); 

E) Не забудьте добавить разрешение Интернета в файл манифеста:

 <uses-permission android:name="android.permission.INTERNET"/> 

Если вы ищете ту же проблему с Android, но используете Xamarin / C #

  var webView = FindViewById<WebView>(Resource.Id.webView); webView.Settings.JavaScriptEnabled = true; webView.Settings.AllowFileAccessFromFileURLs = true; webView.Settings.AllowUniversalAccessFromFileURLs = true; webView.LoadUrl("file:///android_asset/www/index.html");