Страница 4 из 8

Re: Урок 32. Пишем простой браузер

Добавлено: 26 авг 2013, 17:55
eone
Помогите пожалуйста разобраться. Вообщем есть роутер, перепрошит в альтернативную прошивку. с помощью mjpeg stream шлет постоянный видеопоток в порт 8080, и слушает поступающие команды в порт 2000, которые потом пересылает на микроконтроллер.
Итак: можно ли с помощью webview просматривать потоковое видео? сейчас при обращении к странице роутера через webview она прогружается, но без видеотрансляции на андроид (т.е. просто html роутера)

Re: Урок 32. Пишем простой браузер

Добавлено: 10 сен 2013, 19:01
bezobraz1e
Здравствуйте. Как реализовать показ отдельных элементов страницы html?

Re: Урок 32. Пишем простой браузер

Добавлено: 03 окт 2013, 18:47
trew
При запуске программы, мне предлагается выбор из двух браузеров, выбираю стандартный (не тот который я написал в этом уроке). Запускаю google.play.com и решил установить одну из программ.
Под кнопкой Установить (на сайте) возникает надпись: "У Вас нет устройств".
Так что, на виртуальный девайс нельзя установить программы из google.play ?
(eclipse + Android Virtual Device)

Любые другие файлы apk устанавливаются на устройство.
Инструкция ниже.
для этого нужно выложить файл из архива в папку на компьютере sdk\tools
(переложить из папки Install в папку sdk\tools файлики)
и запустить в командной строке cmd
cd C:\eclipse\sdk\tools
(выполнить)
adb install davinchi.apk
(выполнить)
Т.е. файл davinchi.apk, скопированный из интернета предварительно выложить в папку C:\eclipse\sdk\tools
(если у Вас SDK находится в другом месте на компьютере, маршрут будет соответственно другим)

это всё делается ради любопытства.

Re: Урок 32. Пишем простой браузер

Добавлено: 03 окт 2013, 22:05
Kruler
можно, у меня все нормально устанавливается

Re: Урок 32. Пишем простой браузер

Добавлено: 05 окт 2013, 21:30
trew
Разобрался как открывать файл html из своего браузера, используя материал урока.
В примере ниже, показано как отрыть:
1. фрагмент html,
2. файл html из папки asset
3. файл html с SD-карты (подключить SD карту к эмулятору eclipse - это отдельная история)

Код: Выделить всё

public class MainActivity extends Activity {
	
	WebView webView;
	String data2;
	
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.browser);

    webView=(WebView)findViewById(R.id.webView);
    
//    data2 = "<html><body>My Page<br><br>Текст сообщения!</body></html>";
//    webView.loadDataWithBaseURL(null,data2,"text/html" ,"utf-8",null);
    
//	webView.loadData("<html><body>My Page<br><br>This messages very important!</body></html>", "text/html", "UTF-8");
//	   
	// Java enable
//	webView.getSettings().setJavaScriptEnabled(true);
//	
	// Code text
//	webView.getSettings().setDefaultTextEncodingName("utf-8");
//	
//	webView.loadUrl("file:///android_asset/mypage.html");
//	
//	 webView.loadUrl("file:///android_asset/www/mypage.html");
//	 webView.loadUrl("file:///mnt/sdcard/mypage.html");
//	 webView.loadUrl("content://com.android.htmlfileprovider/sdcard/mypage.html");
   }
Раскомментируйте строку, которая интересна Вам и запустите проект.
R.layout.browser - взят из урока.
Файл AndroidManifest.xml - тоже взят из урока.

У некоторых пользователей возникает проблема с кодировкой,
и они пытаются добавить в html файл строку

Код: Выделить всё

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
но это не всегда помогает.
Для того, чтобы увидеть текст на русском в браузере в эмуляторе,
необходимо сам файл сохранять в кодировке UTF-8
т.е. Файл - Сохранить как - (указать кодировку), и так создавать все страницы html.

Re: Урок 32. Пишем простой браузер

Добавлено: 20 окт 2013, 19:22
Radzhab
В общем хочу поменять css в html файле. Делаю гет запрос на сервер и перед отображением юзеру надо изменить style.css

Re: Урок 32. Пишем простой браузер

Добавлено: 21 окт 2013, 16:31
Radzhab
Как подменить свой css на css который видит Webview?

Код: Выделить всё

 ......

    final Activity activity = this;

    wv.setWebChromeClient(new WebChromeClient() {
      public void onProgressChanged(WebView view, int progress)
      {
        activity.setTitle(" "+LASTURL);
        activity.setProgress(progress * 100);

        if(progress == 100)
          activity.setTitle(" "+LASTURL);
      }
    });
    wv.setWebViewClient(new WebViewClient() {
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        Toast.makeText(getApplicationContext(), "Error: " + description+ " " + failingUrl, Toast.LENGTH_LONG).show();
      }

      @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
      {
        if (url.indexOf("habrahabr")<=0) {
          // the link is not for a page on my site, so launch another Activity that handles URLs
          Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
          startActivity(intent);
          return true;
        }
        return false;
      }

      public void onPageStarted (WebView view, String url, Bitmap favicon) {
        LASTURL = url;
      }

      public void onPageFinished (WebView view, String url) {

      }
    });

    wv.loadUrl("http://habrahabr.ru");
  }
}

Re: Урок 32. Пишем простой браузер

Добавлено: 22 окт 2013, 21:38
Radzhab
Ладно) черт с ним с последним сообщением. Как добавить jquery в проект андройда?

Re: Урок 32. Пишем простой браузер

Добавлено: 22 окт 2013, 21:54
Foenix

Re: Урок 32. Пишем простой браузер

Добавлено: 22 окт 2013, 22:32
Radzhab
Спасибо за ссылку) Но данное действие я уже опробовал.Нет там ничего

Re: Урок 32. Пишем простой браузер

Добавлено: 31 окт 2013, 22:01
kefir_mbis
Всем привет. Подскажите новичку, пишу небольшую программу, она исполняет следующее:

Activity + Button---> WebView (на самом деле активностей больше, но там все сводится к переходу с одного экрана на другой)

Застрял как понимаете на webview. по урокам получается создать микро браузер, который задает вопрос, через что открывать ссылку. Но мне требуется открывать страницы внутри WebView, без перехода к стандартному браузеру, ну и чтобы он делал это без вопросов.

Скидываю вам кусок моего жалкого кода, тыкните носом где аннотацию убрать, а где я неправильно данные указал. Ошибки появляются только тут (в манифесте даны права на интернет, переход на активити выполнялся нормально)

ПС: вообще тут добавлен метод обработки кнопки Назад, чтобы при навигации в webview при нажатии этой самой кнопки выполнялся шаг назад (т.е. на предыдущую страницу, а не выйти из приложения), я его хоть правильно разместил?

Код: Выделить всё

package com.vbgroup.myneruyngri;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class TwoActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.activity_two);
	            
	    mWebView = (WebView) findViewById(R.id.webview);
		// включаем поддержку JavaScript
	    mWebView.getSettings().setJavaScriptEnabled(true);
		// указываем страницу загрузки
	    mWebView.loadUrl("http://device-ne.ru"); 
	    mWebView.setWebViewClient(new HelloWebViewClient());
	}}
private class HelloWebViewClient extends WebViewClient 
{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    {
        view.loadUrl(url);
        return true;
    }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
	if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
		mWebView.goBack();
		return true;
	}
	return super.onKeyDown(keyCode, event);
}
Заранее спасибо!:)

Re: Урок 32. Пишем простой браузер

Добавлено: 16 ноя 2013, 14:48
NeoSvet
kefir_mbis писал(а):Застрял как понимаете на webview. по урокам получается создать микро браузер, который задает вопрос, через что открывать ссылку. Но мне требуется открывать страницы внутри WebView, без перехода к стандартному браузеру, ну и чтобы он делал это без вопросов.
Кажется так..)

Код: Выделить всё

package com.vbgroup.myneruyngri;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class TwoActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.activity_two);
	            
	    mWebView = (WebView) findViewById(R.id.webview);
		// включаем поддержку JavaScript
	    mWebView.getSettings().setJavaScriptEnabled(true);
		// указываем страницу загрузки
	    mWebView.loadUrl("http://device-ne.ru"); 
	    mWebView.setWebViewClient(new HelloWebViewClient());
}


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


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
	if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
		mWebView.goBack();
		return true;
	}
	return super.onKeyDown(keyCode, event);
}

}

Re: Урок 32. Пишем простой браузер

Добавлено: 16 ноя 2013, 14:55
NeoSvet
Уже устал долбаться с этим OnTouch...

Код: Выделить всё

WebView wvBrowser;
...
wvBrowser.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
...
return false; //или true
}
});
В Android 4.0+ работает без проблем и с false, и с true.
А вот в 2.3...
Если с false, то код сработает только три раза... А если true, то перестает работать прокрутка.. и кнопки зума не появляются :( ...неужели, эти функции самому изобретать?..
Ту прокрутку, которую я сделал не имеет ускоренного режима..

Re: Урок 32. Пишем простой браузер

Добавлено: 17 ноя 2013, 19:27
NeoSvet
Сделал костыль )))) ..который, правда, работает немного иначе.. но, думаю, сойдет...)

Ой... OnTouch не работает как хотелось бы и в Android 4, если включены кнопки зума... :shock:

Re: Урок 32. Пишем простой браузер

Добавлено: 20 ноя 2013, 13:01
coolmarat
Ребята, подскажите, как мне с приложением сохранять html-страницы с рисунками и подставлять их в webview? Товарищ trew описал как страничку открывать, а как сделать, чтобы она цепляла и рисунки не разобрался...

Re: Урок 32. Пишем простой браузер

Добавлено: 20 ноя 2013, 13:52
trew
coolmarat писал(а):Ребята, подскажите, как мне с приложением сохранять html-страницы с рисунками и подставлять их в webview? Товарищ trew описал как страничку открывать, а как сделать, чтобы она цепляла и рисунки не разобрался...
пример

Re: Урок 32. Пишем простой браузер

Добавлено: 20 ноя 2013, 14:25
coolmarat
Trew, спасибо большое за ссылку!!!! Пытаюсь вникнуть. Пробую твой код из поста выше, раскомментировал строку, где
// webView.loadUrl("file:///android_asset/mypage.html");
пишет страница не доступна...
// webView.loadUrl("file:///android_asset/www/mypage.html");
тоже не доступна...

помоги пожалуйста. Расскажи, куда запихнуть мой html файлик, чтоб он подцепился браузером.

Re: Урок 32. Пишем простой браузер

Добавлено: 20 ноя 2013, 14:33
trew
Папка assets, или папка assets/www для второго случая.
assets - она есть в любом проекте всегда.

Re: Урок 32. Пишем простой браузер

Добавлено: 20 ноя 2013, 14:48
coolmarat
Trew, помоги выпрямить мои руки - скинь целиком проект, который бы отображал в assets встроенную страничку - совсем ничего не получается...

Re: Урок 32. Пишем простой браузер

Добавлено: 26 ноя 2013, 19:46
qwe
Необходимо не просто открыть страницу сайта, а пройти авторизацию (ввести логин и CAPTCHA). То есть приложение запрашивает логин а скрипт должен зайти на сайт, авторизоваться и отобразить страницу уже авторизованного пользователя. Подскажите где можно почитать про реализацию такого метода и не будет ли это очень сложно реализовать ?