Ответ 1
вам нужно сделать что-то вроде
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN)
wv.getSettings().setAllowUniversalAccessFromFileURLs(true);
У меня проблемы с Access-Control-Allow-Origin на Android 4.1
В моем приложении у меня есть некоторые локальные HTML файлы и Javascripts, которые я использовал для извлечения данных из веб-служб. До попытки Android 4.1 не было никаких проблем, но после попытки на Android 4.1 я получил эту ошибку.
Я прочитал много документов, но не смог найти способ решить эту проблему.
вам нужно сделать что-то вроде
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN)
wv.getSettings().setAllowUniversalAccessFromFileURLs(true);
@Я разработчик и другие, которые сталкиваются с той же проблемой.
Решение Slushis отлично работает. Но если вы хотите скомпилировать и поддерживать системы ниже API11, вы должны добавить следующее:
if (Build.VERSION.SDK_INT >= 16) {
Class<?> clazz = webView.getSettings().getClass();
Method method = clazz.getMethod("setAllowUniversalAccessFromFileURLs", boolean.class);
if (method != null) {
method.invoke(webView.getSettings(), true);
}
}
Это будет загружаться и вызывать метод во время выполнения, поэтому вы можете скомпилировать, например. Android 2.3.3.
Являются ли ваши веб-сервисы хостингом из того же домена? Я использовал эту ошибку при создании ajax-вызова для службы в другом домене. Если у вас есть контроль над веб-службой, вы можете установить Access-Control-Allow-Origin: * в заголовке (хотя этот способ не является безопасным способом для этого).