Загрузка существующего .html-файла с помощью android WebView

Я попробовал образцы, демонстрации из кодов Google и других ресурсов с помощью WebView , но когда я пытаюсь сделать это в своем собственном коде, это не работает для меня.

Я хочу загрузить myfile.html который я установил в папку с ресурсами, и используя:

 private WebView myWebView; myWebView.loadUrl("file:///android_assets/myfile.html"); 

На эмуляторе отображается ошибка

Веб-страница в file:///android_assets/myfile.html не может быть загружена как: запрошенный файл не найден. /android_assets/myfile.html

Когда я помещаю этот файл в папку res/raw/ и используя:

 myWebView.loadUrl("file:///android_res/raw/myfile.html"); 

то только эмулятор android 2.2 API уровня 8 может загрузить файл, возможно, другие старые версии показывают ту же ошибку. Я что-то упускаю?

Есть ли способ загрузить существующий .html-файл в пакет приложения, который работает во всех версиях API?

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

Правильный путь для файлов, хранящихся в папке с ресурсами, – file:///android_asset/* (без папки «s» для активов, о которой я всегда думал, что она должна иметь «s»).

И, mWebView.loadUrl("file:///android_asset/myfile.html"); работает на всех уровнях API.

Я все еще не mWebView.loadUrl("file:///android_res/raw/myfile.html"); , почему mWebView.loadUrl("file:///android_res/raw/myfile.html"); работает только на уровне API 8. Но теперь это не имеет значения.

вставьте свой .html-файл в папку с ресурсами вашей папки проекта. и создайте файл xml в папке макета с помощью следующего кода: my.xml:

  

добавление фонового кода в действие

 setContentView(R.layout.my); WebView mWebView = null; mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("file:///android_asset/new.html"); //new.html is html file name. 

Если ваша структура должна быть такой:

/assets/html/index.html

/assets/scripts/index.js

/assets/css/index.css

Затем просто сделайте ( Android WebView: обработка изменений ориентации )

  if(WebViewStateHolder.INSTANCE.getBundle() == null) { //this works only on single instance of webview, use a map with TAG if you need more webView.loadUrl("file:///android_asset/html/index.html"); } else { webView.restoreState(WebViewStateHolder.INSTANCE.getBundle()); } 

Убедитесь, что вы добавили

  WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { webSettings.setAllowFileAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true); } 

Тогда просто используйте URL-адреса

    Zzzz   

Скопируйте и вставьте свой .html-файл в папку с ресурсами вашего проекта и добавьте ниже код в свой Activity on onCreate ().

  WebView view = new WebView(this); view.getSettings().setJavaScriptEnabled(true); view.loadUrl("file:///android_asset/**YOUR FILE NAME**.html"); view.setBackgroundColor(Color.TRANSPARENT); setContentView(view); 

Вы можете прочитать html-файл вручную, а затем использовать loadData или loadDataWithBaseUrl для WebView, чтобы показать его.

Компиляция отладки отличается от версии релиза , поэтому:

Рассмотрите структуру своего проекта, как это [ этот случай, если для сборки Debug ]:

 src | main debug | assets | index.html 

Вы должны вызвать index.html в свой WebView, например:

 WebView web=(WebView)findViewById(R.id.web); web.loadUrl("file:///android_asset/index.html"); 

Расположение:

  

Итак, для выпуска сборки, это должно выглядеть так:

 src | main release | assets | index.html 

Также убедитесь, что вы не забудете:

  • Как очистить cookies и кеширование веб-обозревателя на Android, если вы не находитесь в веб-просмотре?
  • Загрузка Android-ресурса в WebView
  • Загрузите изображение с камеры или галереи в WebView
  • android: веб-просмотр внутри диалога или всплывающее окно
  • Как справиться с базовой аутентификацией в WebView
  • Как приостановить Flash-контент в Android WebView, когда моя активность не видна?
  • Настройка WebView для просмотра рабочего стола, а не для мобильного сайта
  • Отключить прокрутку в веб-просмотре?
  • Утечка памяти в WebView
  • Android WebView "tel:" ссылки показывают, что веб-страница не найдена
  • Давайте будем гением компьютера.