2016-09-09 2 views
0

Работа с Android-Studio, я пытаюсь использовать WebView загрузить локальный HTML-файл, который содержитJavaScript.Как загрузить веб-страницу в WebView из локально созданной папки?

Во-первых, я создал папку assets внутри папки Java. Затем я создал две папки в папке с ресурсами: html и scripts. Я помещаю мою страницу index.html внутри html-папки и файл index.js внутри папки сценариев. Эти два пути выглядеть следующим образом в Android-Studio:

  1. приложение/Java/активы/HTML/index.html
  2. приложение/Java/активы/скрипты/index.js

Теперь, когда я пытаюсь загрузить файл index.html, я использую следующий синтаксис:

myWebView.loadUrl("file:///assets/html/index.html"); 

, но он не работает. Я также использовал каждый из следующих действий:

myWebView.loadUrl("file://assets/html/index.html"); 

myWebView.loadUrl("file://android_assets/html/index.html"); 

myWebView.loadUrl("file:///android_assets/html/index.html"); 

Тем не менее, при загрузке страницы, она показывает «Веб-страница не доступна» !!

Приложение работает нормально, начало намерения и веб-страница загружаются с вышеуказанным предупреждающим сообщением.

  1. Что такое правильный синтаксис для загрузки веб-страницы из локально созданной папки?
  2. Каков правильный синтаксис для загрузки index.js внутри index.html?

Вот код:

public class DisplayMessageActivity extends Activity { 

    private WebView myWebView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_display_message); 

     myWebView = (WebView) findViewById(R.id.webview); 
     myWebView.getSettings().setJavaScriptEnabled(true); 
     myWebView.loadUrl("file:///android_assets/html/index.html"); // doesn't work 
     // myWebView.loadUrl("http://www.example.com"); // works 
    } 

UPDATE

Вот index.html:

<html> 
<header><title>This is title</title></header> 
<body> 
Hello world 
</body> 
</html> 

В настоящее время нет javascript.

+1

Просьба показать содержимое вашего index.html. Возможно, у вас неверная ссылка на index.js. Используйте этот формат mWebView.loadUrl ("file: ///android_asset/html/index.html"); Чтобы изолировать проблему с помощью index.js. Создайте hello_world.html и попробуйте загрузить в html, чтобы убедиться, что это правильно загружено. –

+0

@AmodGokhale: Я уже использую файл html raw hello_world (пожалуйста, проверьте обновление). На данный момент я просто пытаюсь загрузить правильную страницу. Но это не работает !! –

+1

неважно, что для файла андроид-студии должен быть расположен файл @ /app/src/main/assets/html/index.html, а затем загрузить с использованием файла: ///android_asset/html/index.html –

ответ

2

создавать активы папку в основной (не внутри Java), а затем использовать

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

не

myWebView.loadUrl("file:///android_asset**s**/html/index.html"); 

enter image description here

+0

Я исправил путь. Теперь, когда я использую: 'myWebView.loadUrl (« http://www.example.com »);' он работает. Но когда я использую: 'myWebView.loadUrl (" file: ///android_assets/html/index.html ");' it does not !! –

+1

Вы переместили файлы main/assets/html/index.html? это не должно быть main/java/assets/html/index.html –

+0

Да, я это сделал. Теперь путь следующий: 'main/assets/html/index.html' (как он выглядит на * Android * & * project * консервантах слева). –

1

Использование выше ответ просто заменить

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

с webView.loadUrl("file:///android_asset/index.html");

Смежные вопросы