Перейти к содержимому

html из assets


  • Please log in to reply
Сообщений в теме: 23

#1
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
Всем привет! Возник вопрос небольшой, не могу разобраться.

Имею кучу html файлов в assets. Мне нужно, чтобы по нажатию кнопки открывался один из этих html файлов. Всё равно как: хоть WebView, хоть другой браузер. Есть ли способ открытия напрямую этого html файла? Без WebView? Я перепробовал кучу способов, ни в каком не получалось. Может вы поможете...

С txt без проблем всё, но мне нужен именно html.

#2
BezS

BezS

    Участник

  • Пользователи
  • PipPip
  • 16 сообщений
  • Телефон: HTC Desire

  • Всё равно как: хоть WebView, хоть другой браузер.
  • Есть ли способ открытия напрямую этого html файла? Без WebView?

Мне кажется, или я выделил взаимоисключающие параграфы?

#3
igorka

igorka

    Активный участник

  • Пользователи
  • PipPipPip
  • 624 сообщений
  • Город:Днепр
  • Телефон: SE U20i, Sony ST27
Очень трудно сделать то, незнаю что.
Owls Developers
Изображение

#4
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
Эм, что непонятного? Всё равно как открыть html файл, всё равно через что..

#5
igorka

igorka

    Активный участник

  • Пользователи
  • PipPipPip
  • 624 сообщений
  • Город:Днепр
  • Телефон: SE U20i, Sony ST27
Так а проблема в чем?
В гугле стопяцот статей как это сделать.

Вы б код показали какой не работает. Стэктрейс к нему.
Owls Developers
Изображение

#6
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
Гуглил не раз. Если бы не гуглил, то не писал бы сюда.

Пишу так:

	    but.setOnClickListener(new Button.OnClickListener() {

   public void onClick(View v){
   String urlString = "file:///android_asset/file.html";
    Uri uri=Uri.parse(urlString);
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
		
		 }
		 });
	   

Отладка пишет - ошибка в "startActivity(intent);"

Пробовал кучу способов, но отладка всё время ругается на строку открытия/загрузки файла.

#7
Lopa

Lopa

    Активный участник

  • Пользователи
  • PipPipPip
  • 704 сообщений
  • Телефон: Nexus 5
2 решения:
1) Копируйте во внешнюю память, тогда можно будет открыть браузером
2) Используйте WebView
Моё приложение для считывания билетов московского метро:
play.google.com/store/apps/details?id=vc.qc.mifairy
Требует телефон с технологией NFC.

#8
surlac

surlac

    Активный участник

  • Пользователи
  • PipPipPip
  • 320 сообщений

Всё равно как: хоть WebView, хоть другой браузер



WebView mWebView=(WebView)findViewById(R.id.mWebView);
            mWebView.loadUrl("file:///android_asset/file.html");
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.getSettings().setSaveFormData(true);
            mWebView.getSettings().setBuiltInZoomControls(true);
            mWebView.setWebViewClient(new MyWebViewClient());

private class MyWebViewClient extends WebViewClient { 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        view.loadUrl (url); 
        return true;
    }
}

NB!

#9
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений

WebView mWebView=(WebView)findViewById(R.id.mWebView);
			mWebView.loadUrl("file:///android_asset/file.html");
			mWebView.getSettings().setJavaScriptEnabled(true);
			mWebView.getSettings().setSaveFormData(true);
			mWebView.getSettings().setBuiltInZoomControls(true);
			mWebView.setWebViewClient(new MyWebViewClient());

private class MyWebViewClient extends WebViewClient {
	public boolean shouldOverrideUrlLoading(WebView view, String url) {
		view.loadUrl (url);
		return true;
	}
}



Ошибка :( Отладка кричит на "mWebView.loadUrl("file:///android_asset/file.html");"
И так во всех вариантах, которые пробовал.

#10
igorka

igorka

    Активный участник

  • Пользователи
  • PipPipPip
  • 624 сообщений
  • Город:Днепр
  • Телефон: SE U20i, Sony ST27

Ошибка :( Отладка кричит на "mWebView.loadUrl("file:///android_asset/file.html");"
И так во всех вариантах, которые пробовал.


Через динамики кричит или все-же что-то пишет в логкат?
Owls Developers
Изображение

#11
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
Вот logcat. Надеюсь, верно скопипастил.

Spoiler


#12
surlac

surlac

    Активный участник

  • Пользователи
  • PipPipPip
  • 320 сообщений

WebView mWebView=(WebView)findViewById(R.id.mWebView);
			mWebView.loadUrl("file:///android_asset/file.html");
			mWebView.getSettings().setJavaScriptEnabled(true);
			mWebView.getSettings().setSaveFormData(true);
			mWebView.getSettings().setBuiltInZoomControls(true);
			mWebView.setWebViewClient(new MyWebViewClient());

private class MyWebViewClient extends WebViewClient {
	public boolean shouldOverrideUrlLoading(WebView view, String url) {
		view.loadUrl (url);
		return true;
	}
}

Отладка кричит на "mWebView.loadUrl("file:///android_asset/file.html");"...

код рабочий. тестовая html открывается даже на v8. не знаю что ты делаешь не так.
webview в layout прописан?
NB!

#13
igorka

igorka

    Активный участник

  • Пользователи
  • PipPipPip
  • 624 сообщений
  • Город:Днепр
  • Телефон: SE U20i, Sony ST27
А часом не забыли
android:id = "@+id/mWebView"


99% того, что проблема именно в этом.
Да и логкат туда-же ругается.
Owls Developers
Изображение

#14
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
То, что код рабочий - верю :)

Вот сам xml с webview:
Spoiler


#15
igorka

igorka

    Активный участник

  • Пользователи
  • PipPipPip
  • 624 сообщений
  • Город:Днепр
  • Телефон: SE U20i, Sony ST27
Я в яблочко попал)
замени свой
android:id="@+id/web"

на


android:id = "@+id/mWebView"

Owls Developers
Изображение

#16
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
о_О Всё равно ошибка.... Может нужно как-то по особенному html делать? о_О

Ладно, выкладываю всё, что с этим связано..

Из активити с кнопкой:
Spoiler



Из активити с WebView:
Spoiler



Из разметки WebView:
Spoiler



Сам html:
Spoiler


#17
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
Я не знаю уже, где и почему ошибка:(
Теоретически всё просто, а практически ни хрена не делается - ошибка...

#18
igorka

igorka

    Активный участник

  • Пользователи
  • PipPipPip
  • 624 сообщений
  • Город:Днепр
  • Телефон: SE U20i, Sony ST27

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


Так какая ошибка?
После того как правильный id указал, все равно ошибка?
Та-же? Новый стэк трейс покажи.
Clean делал?

Ато ошибка, ошибка. Если хочешь чтобы помогли - предоставь данные.
Owls Developers
Изображение

#19
BuVoL

BuVoL

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений

Так какая ошибка?
После того как правильный id указал, все равно ошибка?
Та-же? Новый стэк трейс покажи.
Clean делал?

Ато ошибка, ошибка. Если хочешь чтобы помогли - предоставь данные.


Что пишу в приложении - выше. А в манифесте нужно что-либо прописывать? о_О

Логкат при нажатии на кнопку, которая должна открывать html:
Spoiler


Отладка ругает строчку:
  mWebView.loadUrl("file:///android_asset/nnn.html");

Очистку сделал - тоже самое.

Может есть где рабочий пример программы этой? В гугле я не нашёл.

#20
surlac

surlac

    Активный участник

  • Пользователи
  • PipPipPip
  • 320 сообщений

А в манифесте нужно что-либо прописывать?

никаких доп разрешений не нужно прописывать в манифесте.

перед тем как искать mWebView в контенте, setContentView(R.layout.main) вызываешь?
NB!




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных