Ответ 1
Это может помочь
https://groups.google.com/group/android-developers/browse_thread/thread/e20e87d2faf9ff41?pli=1#
webview.loadDataWithBaseURL( "file:///android_asset/", html, "text/html",
"utf-8", null );
Я пытаюсь загрузить html-страницу с сервера, страница содержит script, которая ссылается на файл sdcard.js. android.
Java:
String url ="http://192.168.84.86:8080/test/maw/js_load_test.html";
this.loadUrl(url);
js_load_test.html:
<script src="file:///sdcard/test.js"></script>
Я также пробовал:
<script src="file:///android_asset/www/js/test.js"></script>
Файл test.js существует, и путь к файлу js правильный. Но в logcat: Файл:///sdcard/test.js:
03-18 13: 01:12.467: E/Веб-консоль (26189): не разрешено загружать локальные ресурс: файл:///sdcard/test.js по адресу: 0
Файл:///android_asset/www/js/test.js:
03-18 13: 01: 53.467: E/Веб-консоль (26189): не разрешено загружать локальные ресурс: файл:///android_asset/www/js/test.js по адресу: 0
Это может помочь
https://groups.google.com/group/android-developers/browse_thread/thread/e20e87d2faf9ff41?pli=1#
webview.loadDataWithBaseURL( "file:///android_asset/", html, "text/html",
"utf-8", null );
Если вы получаете ошибку "Не разрешено загружать локальный ресурс: файл:///android_asset/index.html", скорее всего, ваша проблема заключается в том, что папка с ресурсами находится в неправильном месте.
Для gradle проекта сохраните папку ваших ресурсов в каталоге src/main/через папки java и res. Вот так:
Проект-папка
- | project_name
- | сборка
- | ЦСИ
--- | активы
--- | генераторных
--- | Java
--- | Рез
Для maven project store yout активы под res/directory
чтобы исправить это, создайте папку в "main", называемую "android_asset", а внутри папки android_asset создайте другую папку под названием "активы" и поместите свой html файл в активы и вызовите с помощью этого mWebView.loadUrl( "file:///android_asset/ВАШ HTML FILE.html" );
У меня была такая же проблема, и даже если я не позвоню mWebView.loadUrl( "file:///android_asset/assets/YOUR HTML FILE.html" ); все еще некоторые из них работают. который я нахожу странным, потому что именно там html!
Итак, ваши папки должны выглядеть так: main/android_assets/assets/YOUR HTML.html и звонить с помощью mWebView.loadUrl( "file:///android_asset/YOUR HTML FILE.html" );
Вот как выглядит мой oncreate.
открытый класс MainActivity расширяет ActionBarActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/index.html");
}
попробуйте следующее:
this.loadUrl("file:///android_asset/www/js/test.js");
но должно быть одно имя папки www- > js в папке с вашими ресурсами.