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

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

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

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

Добавлено: 26 ноя 2013, 20:21
qwe
Как вы думаете зачем придумали CAPTCHA ?
Для того, чтобы определять, кем является пользователь системы: человек или компьютер.
И как вы собираетесь после этого авторизоваться?
Я думаю, что существует по меньшей мере несколько способов прохождения капчи ( различные программы (например, PWNtcha)).
Например, есть приложения по отслеживанию посылок, по трек номеру там тоже необходимо знать трек номер и вводить капча. Я не знаю как там реализована эта возможность но думаю смысл тот же.

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

Добавлено: 26 ноя 2013, 20:33
trew
Универсальных систем распознавания каптч не существует. Поэтому,
Вам нужна помощь из Индии.

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

Добавлено: 29 дек 2013, 16:25
Seldom
Бодрого дня!
Подскажите как сделать браузер не на весь экран?
чтобы, к примеру, вверху экрана были координаты и др. информация, а в нижней части небольшое окошко с картой гугла.

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

Добавлено: 29 дек 2013, 18:12
NeoSvet
Seldom писал(а):Подскажите как сделать браузер не на весь экран?
Аналогично как и другие элементы - в файле разметки (\res\layout) задать конкретные размеры:

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

<WebView
    android:id="@+id/wvBrowser"
    android:layout_width="200dp"
    android:layout_height="200dp" >
</WebView>

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

Добавлено: 07 янв 2014, 17:27
TittTitov
Доброго времени суток!

В общем, я в качестве упражнения, немного дополнил (из тех знаний что уже есть) приложение к этому уроку, добавил несколько кнопок-ссылок на сайты, всплывающие сообщения и др. Но вот возникла проблема.
Среди прочего, я добавил поле ввода EditText ну и кнопку GO к ней. И когда ввожу адрес правильно - то всё в порядке, страница открывается, но когда запись адреса неточна - приложение вылетает с ошибкой. Как можно сделать проверку правильности записи адреса?

И ещё вопрос - есть ли Input Tipe для EditText, который был бы "заточен" под ввод веб-адреса?
Спасибо!

Мой код кнопки GO:
Поле ввода.PNG
Поле ввода.PNG (6.92 КБ) 17573 просмотра

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

Добавлено: 07 янв 2014, 17:59
altwin
NeoSvet писал(а):
Seldom писал(а):Подскажите как сделать браузер не на весь экран?
Аналогично как и другие элементы - в файле разметки (\res\layout) задать конкретные размеры:

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

<WebView
    android:id="@+id/wvBrowser"
    android:layout_width="200dp"
    android:layout_height="200dp" >
</WebView>
для этого используется свойство - match_parent, указывать тут числа бесполезно, поскольку экраны разные...

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

Добавлено: 07 янв 2014, 18:04
altwin
TittTitov писал(а): И ещё вопрос - есть ли Input Tipe для EditText, который был бы "заточен" под ввод веб-адреса?
нужно создать свой Input Method c типом TYPE_TEXT_VARIATION_URI
Как можно сделать проверку правильности записи адреса?
Сохранять url в объект URL вместо String?

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

Добавлено: 19 янв 2014, 12:35
Novichok
Подскажите пожалуйста вместо ya.ru вставил ссылку на свой сайт теперь он начинает просить родной браузер!

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

Добавлено: 19 янв 2014, 14:56
Novichok
]омогите пожалуйста вот код маин акитивити! две проблемы button2 должен выводить на другой экран к нему layout two уже создан он не выводит установил а там просто кнопка нет никаких действий и вторая проблема на уроке 32 написал простой браузер эта button1 тк вот вставил ссылку на свой сайт когда нажимаю на кнопку сначала просит выбрать браузеры там есть мой созданный выбираю его затем пустой экран и опять просит выбрать но моего уже в списке нет! Заранее спасибо.

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

package com.example.cc;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	Button button2;

	  /** Called when the activity is first created. */
	  @Override
	  public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.main);

	    button2 = (Button) findViewById(R.id.button2);
	    button2.setOnClickListener((OnClickListener) this);
	  }

	  public void onClick(View v) {
	    switch (v.getId()) {
	    case R.id.button2:
	    	   Intent intent = new Intent(this, TwoActivity.class);
	    	      startActivity(intent);
	      // TODO Call second activity
	      break;
	    default:
	      break;
	    }
	  }
	  
	/** Called when the activity is first created. */
	  
	  public void onCreate1(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.main);
	    

	    (findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
	        @Override
	        public void onClick(View v) {
	          startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.mysite.ru")));
	        }
	      });
	    }
	  }

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

Добавлено: 19 янв 2014, 16:22
Foenix
никто не будет вглядываться в такой код и мысленно расставлять инденты. Форматируй.

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

Добавлено: 29 янв 2014, 11:55
Seldom
Всем привет!
из-за невнимательности пропускал в уроках "Build Target: Android 2.3.3"... в итоге что-то работало что-то нет.....
глобальный вопрос: то что работает на API8 не хочет работать на API15 - это я виноват? или что-то более серьезное еще не допонял?
к примеру:

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

URL rssUrl = new URL("http://baobab.bab/index.xml");
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser saxParser = factory.newSAXParser();
            XMLReader xmlReader = saxParser.getXMLReader();
            RSSHandler rssHandler = new RSSHandler();
            xmlReader.setContentHandler(rssHandler);
            InputSource inputSource = new InputSource(rssUrl.openStream());
            xmlReader.parse(inputSource);
если API 15 - спотыкается на - InputSource inputSource = new InputSource(rssUrl.openStream());
если API 8 - все отлично...

где можно почитать?.... желательно на русском :oops:

.... смеркалось....

убрал упоминания о sdk из манифеста оставив только

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

<uses-sdk/>
в project.properties вписано -

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

# Project target.
target=android-16
все работает..... чёт совсем запутался.....

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

Добавлено: 30 янв 2014, 19:47
Seldom
ау! есть кто-нибудь?

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

Добавлено: 31 янв 2014, 05:46
klblk
Seldom писал(а):ау! есть кто-нибудь?
на будущее прилагайте еще лог ошибки.
как я понимаю тут вполне обычный NetworkOnMainThreadException (название говорящее)
на старых api можно было обращаться к сети из главного потока, на новых нельзя.

пример решения http://stackoverflow.com/questions/6343 ... dexception

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

Добавлено: 31 янв 2014, 20:39
Seldom
Ура!!!!! Заработало!!! Спасибо огромное!!!

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

Добавлено: 20 фев 2014, 13:49
Nemoi
Подскажите можно ли в mainactivity совмсестить явный вызов интетнт из класса в методе (StartActivityResult) и парсинг Ури из ?
Пытаюсь добавить в браузер активити в который будем вводить URL (CatchUrl.class) , парсить его при помощи Uri и отправлять в editTextБраузера , вот мой код и лог ошибок( Приложение при запуске вылитает)

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

public void onClick(View v){
		String MyUrl;
		if(TextUtils.isEmpty(editUrl.getText().toString())){
			Toast.makeText(this, "Put in", 0).show();
			return;
		}
		switch (v.getId()) {
		case R.id.btnWeb :
		startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.ya.ru")));
		break;
		case R.id.srch:
			try {
			MyUrl = new String(editUrl.getText().toString());
			Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse(MyUrl));
			startActivity(intent); 
			}catch (Exception ex) {
				Toast.makeText(this,"dont load", 0).show();
				}
			break;
		case R.id.clear:
				editUrl.setText(" ");
				break;
		
		case R.id.goTo:
			Intent intent1=new Intent(this,GetUrl.class); 
				startActivityForResult(intent1,1);
				break; }
				
		}
		
		protected void OnActivityReslut(int requestCode, int resultCode, Intent data) {
			if (data==null){return;}
			String geturll=data.getStringExtra("geturll");
			eddText.setText("Your url is" +geturll);
			}
}

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

02-20 11:27:56.792: E/AndroidRuntime(539): FATAL EXCEPTION: main
02-20 11:27:56.792: E/AndroidRuntime(539): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.p0321_browser/com.example.p0321_browser.MainActivity}: java.lang.ClassCastException: android.widget.TextView
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.os.Handler.dispatchMessage(Handler.java:99)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.os.Looper.loop(Looper.java:130)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at java.lang.reflect.Method.invokeNative(Native Method)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at java.lang.reflect.Method.invoke(Method.java:507)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at dalvik.system.NativeStart.main(Native Method)
02-20 11:27:56.792: E/AndroidRuntime(539): Caused by: java.lang.ClassCastException: android.widget.TextView
02-20 11:27:56.792: E/AndroidRuntime(539): 	at com.example.p0321_browser.MainActivity.onCreate(MainActivity.java:36)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-20 11:27:56.792: E/AndroidRuntime(539): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
02-20 11:27:56.792: E/AndroidRuntime(539): 	... 11 more

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

Добавлено: 21 фев 2014, 06:36
klblk
Nemoi писал(а):

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

02-20 11:27:56.792: E/AndroidRuntime(539): Caused by: java.lang.ClassCastException: android.widget.TextView
02-20 11:27:56.792: E/AndroidRuntime(539): 	at com.example.p0321_browser.MainActivity.onCreate(MainActivity.java:36)
Падает в onCreate, а показываете метод onClick

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

Добавлено: 28 фев 2014, 20:58
Den Brown
Дошел до 32 урока, и впервые возникла "нештатная" ситуация.

Все сделал как описано в уроке, при нажати на кнопке возникает выбор из браузеров и моего второго активити.

Но если выбрать мое активити, то окно выбора появляется вновь и предлает уже только браузеры. Если это окно отклонить (кликнуть вне окна выбора) то появляется пустое второе активити.

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

Спасибо

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

Добавлено: 28 мар 2014, 02:02
inumo
Здравствуйте,спасибо за информативное описание уроков.
вопрос,
при просмотре страницы через webview есть форма добавления картинки на сайт. Видно только кнопку. Но она не активна. Для статической кнопки все ясно,а как бытьс динамической? какой обработчик использовать?


Спасибо за подсказку.

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

Добавлено: 12 июл 2014, 22:04
sergeymild
Есть вопрос по webView бьюсь уже неделю не пойму как сделать, есть сервер который отдает api в виде json строки с html содержимым, там есть текст, ссылки, изображения, видео. Как сделать чтобы при клике на изображение оно открывалось в новом activity или fragmente для полного отображения пример как в приложении Tjournal при клике на изображение в новости оно открывается в новом активити? и такой же вопрос по видео уже не знаю что и делать совсем руки опускаются. перепробовал все и в интернете нет нормальных ответов на это.