Android WebView + AJAX локальные файлы
У меня есть веб-просмотр Android, загружающий веб-сайт, который у меня есть в моих активах. Я'я не собрал его сам, и у меня очень мало контроля над разметкой, js и т. д.
Проблема: Части сайта используют jquery $ .ajax-gets для извлечения HTML для отображения в модальном режиме, и я думаю, что 'Мы столкнулись с проблемой междоменных доменов (если я тестирую сайт локально на своем рабочем столе, я получаю предупреждения о том же происхождении, мой источник - "ноль"), т.е. по какой-то причине местный js может 'ajax-get другие локальные файлы в папке ресурсов, потому что основной браузер считает, что они из разных источников. Я'Я прочитал все, что смогу, и ничего не изменится. Не получать никаких ошибок или предупреждений в LogCat.
Это работает на Nexus 7, файлы находятся в папке активов (file:///android_asset
). Все остальное работает нормально, но не везет с ajax GET.
Из манифеста:
Соответствующий код веб-просмотра:
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setSupportMultipleWindows(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.setHorizontalScrollBarEnabled(false);
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
mWebView.addJavascriptInterface(this, "android");
if (savedInstanceState != null) {
mWebView.restoreState(savedInstanceState);
} else {
mWebView.loadUrl("file:///android_asset/site/index.html");
}
Вот'S соответствующие JS:
var load = function ( source, callback, dontShowLoader ) {
if( !dontShowLoader ) {
loading( 'show' );
}
$.ajax({
url: source,
type: 'GET',
data: {
campaign: true
},
success: function ( data ) {
var $data = $(data);
loading( 'hide' );
$data.data( 'url', source );
callback( $(data) );
}
});
};
Я что-то здесь упускаю? Неужели нет способа сделать ajax GET поверх содержимого локальных файлов? Обратите внимание, что ятолько иметь локальные файлы для работы, при обычном использовании планшет не подключен к Интернету при использовании приложения, поэтому любые внешние вызовы запрещены.