Menu
Jest wolny
rejestracja
Dom  /  Oprogramowanie układowe/ Piszemy pełnoprawną przeglądarkę na Androida. WebView - stwórz własną przeglądarkę Jak zrobić przeglądarkę aplikacji na Androida

Piszemy pełnoprawną przeglądarkę na Androida. WebView - stwórz własną przeglądarkę Jak zrobić przeglądarkę aplikacji na Androida

Zacząłem uczyć się programowania na Androida nie tak dawno temu. Po wydaniu przez Eclips mojego pierwszego Hello Worda od razu chciałem więcej: było wiele planów i wspaniałych pomysłów. Jednym z takich pomysłów było napisanie własnej przeglądarki. Myślę, że wielu początkujących programistów miało to pragnienie. To są wymagania, które postawiłem i co się ostatecznie wydarzyło.

  • Program powinien otwierać linki sieć globalna, swobodnie poruszać się po stronach do przodu i do tyłu;
  • Być w stanie pobierać pliki i przesyłać je z powrotem do sieci;
  • Twórz zakładki i zapisuj je;
  • Możliwość pobierania linków wysyłanych z innych aplikacji;
  • Powinien być przycisk Home, menu z różnymi ustawieniami itp.

Ogólnie rzecz biorąc, pełnoprawna przeglądarka własnymi rękami. Umieśćmy to w kodzie.

Program napisany jest w oparciu o standardowy webview dołączony do systemu Android. Jak Strona startowa Używam Yandex, to kwestia gustu. Główną Aktywnością będzie MainActivity.

Przede wszystkim ustawiamy znaczniki plik xml-aktywność_główna.xml. Jako głównego kontenera używamy LinearLayout - zawijamy do niego ProgressBar, aby wyświetlić proces ładowania. Następnie tworzymy kolejny kontener LinearLayout - zawijamy w niego nasz Webview i FrameLayout (używamy go do rozciągnięcia odtwarzanego wideo na pełny ekran).

Zobacz kod

LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: orientacja = "pionowe" narzędzia: kontekst = ". MainActivity">

Zacznijmy pisać kod w MainActivity

Pełny kod dla MainActivity.

Zobacz pełny kod

Importuj plik java.io.; importuj menu android.R.; importuj android.adnotation.SuppressLint; importuj android.app.ActionBar; importuj android.app.Activity; importuj android.app.AlertDialog; importuj android.app.DownloadManager; importuj android.app.DownloadManager.Request; importuj android.app.KeyguardManager; importuj android.app.SearchManager; importuj android.content.BroadcastReceiver; importuj android.content.Context; importuj android.content.DialogInterface; importuj android.treść.Intent; importuj android.content.IntentFilter; importuj android.content.SharedPreferences; importuj android.net.Uri; importuj android.os.Bundle; importuj android.os.Environment; importuj android.os.Parcelable; importuj android.os.PowerManager; importuj android.preference.PreferenceManager; importuj android.provider.MediaStore; importuj android.util.Log; importuj android.view.KeyEvent; importuj android.view.Menu; importuj android.view.MenuItem; importuj android.view.View; importuj android.view.WindowManager; importuj android.webkit.ConsoleMessage; importuj android.webkit.DownloadListener; importuj android.webkit.ValueCallback; importuj android.webkit.WebBackForwardList; importuj android.webkit.WebChromeClient; importuj android.webkit.WebView; importuj android.webkit.WebViewClient; importuj android.widget.FrameLayout; importuj android.widget.SearchView; importuj android.widget.Toast; importuj android.graphics.Bitmap; importuj android.webkit.URLUtil; public class MainActivity extends Activity (// zmienna logiczna dla stanu połączenia Boolean isInternetPresent = false; ConnectionDetector cd; private WebChromeClient.CustomViewCallback mFullscreenViewCallback; private FrameLayout mFullScreenContainer; private View mFullScreenView; private WebView mWebresent activity; int 1 final publiczny Uri imageUri; prywatny statyczny końcowy int FILECHOOSER_RESULTCODE = 2888; prywatny ValueCallback mPrześlijWiadomość; prywatny Uri mCapuredImageURI = null; prywatny menedżer pobierania menedżera pobierania; @Override protected void onCreate (Bundle protectedInstanceState) (super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Utwórz przykładową klasę detektora połączenia: cd = new ConnectionDetector (getApplicationContext ()); // utwórz przycisk home final ActionBar actionBar = getActionBar (); actionBar.setHomeButtonEnabled (true); actionBar.setDisplayHomeAsUpEnabled (true); // złapać zamiar, że plik jest załadowany i powiadomić BroadcastReceiver odbiornik = new BroadcastReceiver () (zamiar @Override public void onReceive (Kontekst, Kontekst intencji (String action = intent.getAction (); if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals (akcja)) (loadEnd ();))); // przechwyć zamiar załadowania pliku registerReceiver (odbiorca, nowy IntentFilter (DownloadManager) .ACTION_DOWNLOAD_COMPLETE)); mWebView = (WebView) findViewById (R.id.web_view); mFullScreenContainer = (FrameLayout) findViewById (R.id.fullscreen_container); mWebView.setWebChromeClient (mWebChromeClient); mWebView. loadUrl („http://yandex.ru”); handleIntent (getIntent ()); klasa HelloWebViewClient rozszerza WebViewClient (@Override public void onPageStarted (widok WebView, adres URL ciągu, favicon mapy bitowej) (super.onPageStarted (widok, url, favicon); findViewById (R.id.progress1) .setVisibility (View.VISIBLE); setTitle ( url); urload = mWebView.getUrl (); ConnectingToInternet ();) @Override public boolean shouldOverrideUrlLoading (widok WebView, String url) (view.loadUrl (url); // uruchom linki do rynku Uri uri = Uri.parse ( url ); if (uri.getScheme (). equals ("rynek")) (Intent i = nowy zamiar (android.content.Intent.ACTION_VIEW); i.setData (uri); i.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (i); mWebView.canGoBack (); (mWebView.goBack ();)) // uruchom e-mail if (uri.getScheme (). equals ("mailto")) (Intent i = new Intent (android.content). Intent .ACTION_SEND); i.setType ("text / html"); i.putExtra (Intent.EXTRA_SUBJECT, "Wprowadź temat"); i.putExtra (Intent.EXTRA_TEXT, "Wprowadź tekst"); i.putExtra (Intent. EXTRA_EMAIL , nowy ciąg (url)); startAct wydajność (i); mWebView.canGoBack (); (mWebView.goBack ();)) // uruchom wywołanie if (uri.getScheme (). equals ("tel")) (Intent i = new Intent (android.content.Intent.ACTION_DIAL); i.setData (uri ) ; startActivity (i); mWebView.canGoBack (); (mWebView.goBack ();)) // uruchom sekcję if (uri.getScheme (). equals ("geo")) (Intent i = new Intent (android .treść ... Intent.ACTION_VIEW); i.setData (uri); startAktywność (i); mWebView.canGoBack (); (mWebView.goBack ();)) zwraca prawdę; ) @Override public void onPageFinished (widok WebView, adres URL ciągu) (findViewById (R.id.progress1) .setVisibility (View.GONE);) @Override public void onReceivedError (widok WebView, int errorCode, opis ciągu, ciąg failingUrl) ( ConnectingToInternet ();mWebView.loadUrl („plik: ///android_asset/error.png”);)) mWebView.setWebViewClient (nowy HelloWebViewClient ()); // pobierz pliki na urządzenie mWebView.setDownloadListener (nowy DownloadListener () (@Override public void onDownloadStart (final String url, String userAgent, String contentDisposition, String mimetype, long contentLength) (final String fileName = URLUtil.guessFileName (url, contentDisposition) , mimetype); final AlertDialog.Builder downloadDialog = new AlertDialog.Builder (MainActivity.this); downloadDialog.setTitle ("Menedżer pobierania"); downloadDialog.setMessage ("Pobrać ten plik do folderu pobierania?" + "n" + typ MIME + " n "+ url); downloadDialog.setPositiveButton (" Yes ", nowy DialogInterface.OnClickListener () (public void onClick (DialogInterface dialogInterface, int i) (doDownload (url, fileName); dialogInterface.dismiss ();))); downloadDialog .setNegativeButton („Nie”, nowy DialogInterface.OnClickListener () (public void onClick (DialogInterface dialogInterface, int i) ())); downloadDialog.show ();))); ) // **************************************** // ***** * *********************************** // ************ ** **************************** public void ConnectingToInternet () (// Uzyskaj status połączenia internetowego isInternetPresent = cd.ConnectingToInternet () ; / / Sprawdź stan Internetu: if (isInternetPresent) (// Jest połączenie z Internetem // wykonaj żądania HTTP :) else (// Brak połączenia z Internetem Toast.makeText (to, "Internet spadł !!!", Toast.LENGTH_SHORT) .show ();)) @SuppressLint ("SetJavaScriptEnabled") @Override // settings public void onResume ( ) (super.onResume (); SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences (to); if (sPref.getBoolean ("img", false)) (mWebView.getSettings ().setLoadsImagesAutomatically (false);) else (mWebView .gettings ) .setLoadsImagesAutomatically (true);) if (sPref.getBoolean ("js", false)) (mWebView.getSettings ().setJavaScriptEnabled (false);) else (mWebView.getSettings ().setJavaScriptEnabled (true);) if ( sPref.getBoolean ("cache", false)) (cache = 2;) else (cache = 1;)) // napisz zakładkę public void saveBm (String urlPage1, String urlTitle1) (Intent intent = new Intent , SaveBmActivity. class); intent.putExtra („urlTitle”, urlTitle1); intent.putExtra („urlPage”, urlPage1); startActivity (zamiar);) public void pref () (// Ustawienia intencji intent = nowy zamiar (to, PreferencesActivity.class); startActivity (zamiar); ) // wyczyść pamięć podręczną i historię prywatną void clCache () (clearCache (aktywność); mWebView.clearCache (prawda); mWebView.clearHistory (); Toast.makeText (to „Wyczyszczono pamięć podręczną i historię”, Toast.LENGTH_SHORT) .show ();) @Override chronione void onUserLeaveHint () (super.onUserLeaveHint ();) @Override public boolean onKeyDown (int keyCode, zdarzenie KeyEvent) (// przycisk wstecz, jeśli ((keyCode == KeyEvent.KEYCODE_BACK)) (mWebView. canGoBack (); (mWebView.goBack ();) return true;) return super.onKeyDown (keyCode, event);) // przechwyć adres URL uruchomionego programu private boolean handleIntent (Intent intent) (String action = intent.getAction (); if (Intent.ACTION_VIEW.equals (akcja)) (String url = intent.getDataString (); Toast.makeText (this, url, Toast.LENGTH_SHORT) .show (); mWebView.loadUrl (url); // załaduj stronę return true;) return false;) // menedżer pobierania private void doDownload (String url, String fileName) (Uri uriOriginal = Uri.parse (url); spróbuj (Toast.makeText (MainActivity.th) to „Pobieranie” + nazwa_pliku, Toast.LENGTH_LONG) .show (); Żądanie żądania = nowe DownloadManager.Request (Uri.parse (url)); request.setDestinationInExternalPublicDir (Environment.DIRECTORY_DOWNLOADS, fileName); final DownloadManager dm = (DownloadManager) getSystemService (Context.DOWNLOAD_SERVICE); dm.enqueue (żądanie); ) catch (Wyjątek e) (Toast.makeText (this, "Error", Toast.LENGTH_SHORT) .show (); Log.e ("", "Problem z pobieraniem:" + uriOriginal, e);)) // wyciągnij video full screen private final WebChromeClient mWebChromeClient = new WebChromeClient () (@Override @SuppressWarnings ("wycofanie") public void onShowCustomView (widok, int requestOrientation, CustomViewCallback callback) (onShowCustomView (viewOver callback public);) View view, CustomViewCallback callback) (jeśli (mFullScreenView!) = null) (callback.onCustomViewHidden (); return;) mFullScreenView = widok; mWebView.setVisibility (View.GONE); mFullScreenContainer.setVisibility (View.VISIBLE); mFullScreenContainer.addView (widok); mFullscreenViewCallback = wywołanie zwrotne; ) @Override public void onHideCustomView () (super.onHideCustomView (); if (mFullScreenView == null) (return;) mWebView.setVisibility (View.VISIBLE); mFullScreenView.setVisibility (View.GONE); mFullScreenContainer.setVisibility GONE); mFullScreenContainer.removeView (mFullScreenView); mFullscreenViewCallback.onCustomViewHidden (); mFullScreenView = null;) // *************************** ******************* przesyłanie plików do sieci // openFileChooser dla Androida 3.0+ public void openFileChooser (ValueCallback uploadMsg, String acceptType) (// Aktualizuj wiadomość mUploadMessage = uploadMsg; try (// Utwórz AndroidExampleFolder w sdcard File imageStorageDir = new File (Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_PICTURES), "AndroidExampleFolder)) ()exrage"); if (! / Utwórz AndroidExampleFolder w sdcard imageStorageDir.mkdirs ();) // Utwórz ścieżkę i nazwę pliku obrazu przechwyconego przez aparat Plik plik= nowy plik (imageStorageDir + File.separator + "IMG_" + String.valueOf (System.currentTimeMillis ()) + ".jpg"); mCapuredImageURI = Uri.fromFile (plik); // Zamiar przechwytywania obrazu z kamery final Intent captureIntent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE); captureIntent.putExtra (MediaStore.EXTRA_OUTPUT, mCapturedImageURI); Intencja i = nowa intencja (Intent.ACTION_GET_CONTENT); i.addCategory (Intent.CATEGORY_OPENABLE); i.setType ("obraz / *"); // Utwórz intencję pliku selektora Intent chooserIntent = Intent.createChooser (i, "Image Chooser"); // Ustaw kamery zgodnie z intencją wyboru pliku chooserIntent.putExtra (Intent.EXTRA_INITIAL_INTENTS, nowy Parcelable (captureIntent)); // Przy wyborze obrazu z pominięciem metody onactivityresult, wywołanie metody aktywności startActivityForResult (chooserIntent, FILECHOOSER_RESULTCODE); ) catch (Exception e) (Toast.makeText (getBaseContext (), "Exception:" + e, Toast.LENGTH_LONG) .show ();)) // openFileChooser dla Androida< 3.0 @SuppressWarnings("unused") public void openFileChooser(ValueCallbackuploadMsg) (openFileChooser (uploadMsg, "");) // @SuppressWarnings ("nieużywane") public void openFileChooser (ValueCallback uploadMsg, String acceptType, String capture) (openFileChooser (uploadMsg, acceptType);) public boolean onConsoleMessage (ConsoleMessage cm) (onConsoleMessage (cm.message (), cm.lineNumber (), cm.sourceId ());) return true;) public void onConsoleMessage (ciąg wiadomości, int lineNumber, ciąg identyfikator źródła) (//Log.d("androidruntime "," Pokaż komunikaty konsoli, używane do debugowania : "+ wiadomość););); // Zakończ setWebChromeClient // Uzyskaj wynik @SuppressWarnings (" nieużywane ") prywatne dane obiektu; @Override protected void onActivityResult (int requestCode, int wynikCode, Intent data) (if (data = = null) (return;) String urlPage2 = data.getStringExtra ("urlPage2"); mWebView.loadUrl (urlPage2); if (requestCode == FILECHOOSER_RESULTCODE) (if (null == this.mUploadMessage) (return;) Wynik Uri = null ; try (if (resultCode! = RESULT_OK) (result = null;) else (// wyodrębnij z własnej zmiennej, jeśli intencją jest null wynik = data == null? mCapturedImageURI: data.getData ();)) catch (wyjątek e ) (Toast.makeText (getApplicationContext (), "aktywność:" + e, Toast.LENGTH_LONG) .show ();) mUploadMessage.onReceiveValue (wynik); mUploadMessage = null;)) // ******* * ********************** public void loadEnd () (Toast.makeText (to „Plik załadowany w folderze Donwload”, Toast.LENGTH_SHORT) .show () ;) // menu @Zastąp publiczne bo olean onCreateOptionsMenu (menu Menu) (// Napełnij menu; dodaje to elementy do paska akcji, jeśli jest obecny. getMenuInflater ().inflate (R.menu.main, menu); zwróć prawdę; ) // ************************************************** * ******* @Override public boolean onOptionsItemSelected (pozycja MenuItem) (przełącznik (item.getItemId ()) (przypadek android.R.id.home: // przycisk home mWebView.loadUrl ("http: // yandex .). ru "); return true; case R.id.item1: // back mWebView.canGoBack (); (mWebView.goBack ();) return true; case R.id.item2: // forward mWebView.canGoForward () ; (mWebView.goForward ();) return true; case R.id.item3: // przeładuj mWebView.reload (); (mWebView.reload ();) return true; case R.id.item4: // wyczyść pamięć podręczną mWebView.clearCache (prawda); clearCache (aktywność); Toast.makeText (to, "Wyczyść pamięć podręczną", Toast.LENGTH_SHORT) .show (); return true; case R.id.item5: mWebView.clearHistory (); / / wyczyść historię Toast.makeText (to, "Historia jest czysta.", Toast.LENGTH_SHORT) .show (); return true; case R.id.item6: saveBm (mWebView.getUrl (), mWebView.getTitle ()) ; // napisz zakładkę, zwróć true; case R.id.item7: // pasek zakładek Intent intent1 = new Intent (to , SaveBmActivity.class); startActivityForResult (zamiar1, 1); zwróć prawdę; case R.id.item8: // zatrzymaj ładowanie mWebView.stopLoading (); zwróć prawdę; case R.id.item9: pref ();// ustawienia zwracają true; case R.id.item10: // na razie puste return true; case R.id.item11: // exit if (cache == 2) (clCache ();) finish (); zwróć prawdę; domyślnie: return super.onOptionsItemSelected (pozycja); )) @SuppressWarnings („wycofanie”) @Override public void onDestroy () (super.onDestroy (); mWebView.stopLoading (); mWebView.clearCache (prawda); mWebView.clearView (); mWebView.freeMemory (); mWebView. destroy (); mWebView = null;) // wyczyść pamięć podręczną void clearCache (kontekst kontekstowy) (clearCacheFolder (context.getCacheDir ());) void clearCacheFolder (końcowy katalog plików) (if (dir!) = null && dir.isDirectory ()) (try (for (File child: dir.listFiles ()) (// rekursywnie najpierw wyczyść katalogi if (child.isDirectory ())) clearCacheFolder (child); else // wtedy rzeczywista pliki podrzędne .delete ();)) catch (wyjątek e) ())))

Projekt można pobrać

Dobry dzień!

Tak się złożyło, że po napisaniu recenzji jednej przeglądarki i porównaniu jej z innymi, chciałem napisać więcej o każdej z nich, bo każda z nich nadaje się do czegoś konkretnego (choć wydawałoby się, że cóż może być bardziej konkretnego niż surfowanie po sieci ☺) ... W jednej przeglądarce doskonała przejrzysty interfejs, ale ładowanie trwa długo, drugi zjada dużo energii i często się psuje, ale wygodnie się nad nim pracuje duża ilość zakładki, a trzecia jest idealna do szybkiego przeglądania interesującego Cię linku. Nie musisz wybierać. Pobierz, co chcesz. Jeśli chodzi o synchronizację zakładek, to nie jest problem, opiszę szczegółowo kilka sposobów, w jaki można je zapisać dla wszystkich przeglądarek jednocześnie. A jeśli nie podoba Ci się interfejs żadnej z przeglądarek (co, biorąc pod uwagę ich liczbę, jest mało prawdopodobne ☺) - stwórz własny. Po prostu stwórz własną przeglądarkę !!! Taką możliwość daje przeglądarka, którą oznaczyłem jako moją ulubioną na liście.

Aby opis programów był przydatny, napiszę w dwóch sekcjach:

  • opis programu: jak zapisywać i sortować notatki, przyspieszyć ładowanie, dostosować wygląd i pożądane funkcje za pomocą motywów i ustawień oraz drobiazgi, które wyróżniają przeglądarkę spośród innych;
  • osobiste doświadczenie użytkowania: co mi się podoba w tej przeglądarce i jakie znalazłem wady.

    Jeśli pierwszy z nich przyda się po pobraniu programu, aby ułatwić zrozumienie elementów sterujących, to drugi pomoże ci tylko zdecydować, czy w ogóle go pobrać.

    Uwaga: przeglądarki były używane na tablecie Sony Xperia S. Na innych urządzeniach możliwe są różne prędkości i charakterystyki. Ale z obserwacji wynika, że ​​interfejs i funkcje pozostają takie same.

    Na moim tablecie jest 12 przeglądarek. Poza standardową przeglądarką na Androida i Google Chrome pozostało dokładnie dziesięć:

  • Przeglądarka UC;
  • Przeglądarka łodzi (standard);
  • Łódź Mini;
  • Opera Mini;
  • Opera Mobilna;
  • Przeglądarka UltraLight;
  • Jedna przeglądarka;
  • Firefox;
  • Maxthona;
  • Maxthon HD (mój ulubiony).

    1. Przeglądarka UC

    Berło

    Wygląd programu jest minimalistyczny i przeznaczony bardziej na smartfony.

    Domyślnie działa w trybie pionowym. Instalowanie motywów nie jest obsługiwane. Maksymalna liczba pobrań jest ograniczona do 5… Jeśli jednak dokonasz ustawień, przeglądarka może być całkiem dobrze dostosowana do innych urządzeń. Menu jest całkiem wygodne i jest tak proste, jak łuskanie gruszek, aby to rozgryźć!

    Ta przeglądarka wyświetla strony, które są często używane w bardzo nietypowy sposób, na przykład Yandex:

    Dzięki temu strona ładuje się w ciągu kilku sekund.

    Karty

    Karty nie zajmują górnej części ekranu; aby zobaczyć otwarte strony, musisz kliknąć przycisk na dole ekranu:

    Zakładki

    Aby dodać zakładkę, wystarczy kliknąć żółtą gwiazdkę (wydaje mi się, że ta gwiazdka jest taka sama we wszystkich przeglądarkach ☺).

    Możesz zapisać dowolny wcześniej utworzony folder lub zapisać w katalogu głównym, a następnie posortować w wolnym czasie. Fajnie, że możesz wysłać zakładkę bezpośrednio na pulpit.

    Przyjemne drobiazgi

    Zarządzanie w trybie poziomym jest bardzo nietypowe! Prawdopodobnie nigdy nie robiłeś takich gestów. Aby zamknąć bieżącą kartę, musisz dotknąć dwoma palcami i… po prostu przesunąć w dół. Aby otworzyć nową kartę, odwrotnie.

    Moja opinia

    Ogólnie doskonałe, szybka przeglądarka, który trudno porównać z czymkolwiek innym. Pomimo tego, że pierwsze wrażenie nie zawsze jest dobre, tak jak ja ze względu na duże elementy. Ale interfejs można zmienić prawie nie do poznania tylko za pomocą ustawień. Myślę, że ta przeglądarka z pewnością zasługuje na uwagę i trochę miejsca w pamięci Twojego urządzenia.

    2. Mini przeglądarka łodzi

    Najpierw ogólny opis i mała instrukcja obsługi.

    Wygląd programu

    Interfejs programu jest dość prosty, ale trudno nazwać go intuicyjnym. Przyciski sterujące do wywoływania menu i za małe do sterowania dotykowego, chociaż można się do tego przyzwyczaić.

    Ale ekran nie jest zagracony i jest wygodny. Dostępnych jest sześć przycisków i służą one do najpopularniejszych czynności: zapisz zakładki lub przejdź do poprzedniej lub następnej strony.

    Bardziej zaawansowane menu jest ukryte za prawym przyciskiem. Przy pierwszym uruchomieniu pojawia się pusta zakładka, którą później można zastąpić dowolną witryną, ustawiając ją jako stronę główną.

    W przeciwieństwie do większości przeglądarek, których wersje mobilne nie obsługują instalowania motywów, Boat Browser ma je: wszystkie motywy są podzielone na motywy zainstalowane i internetowe. Te pierwsze można zmieniać przynajmniej codziennie, są już zainstalowane w przeglądarce, ale nie różnią się oryginalnością. Jeśli chcesz piękniejszych rozwiązań, motywy można pobrać z Rynek Play Absolutnie wolny.

    Ale to w teorii. W praktyce udało mi się pobrać tylko jeden motyw, a potem przy pierwszym uruchomieniu. Innym razem po prostu upadłem strona główna Rynek Play.

    Karty

    Przeglądarka obsługuje do ośmiu kart, co zwykle wystarcza. W przeciwieństwie do Chrome nie zajmują górnej części ekranu, są dostępne za pomocą małego przycisku na dole. Karty są prezentowane jako miniatury otwartych stron internetowych i można je łatwo przewracać.

    Zakładki

    To bardzo przyjemne, że zakładki można sortować do wcześniej utworzonych folderów podczas dodawania lub modyfikowania istniejącej zakładki.

    Zarządzanie zakładkami jest intuicyjne: przesuwając palcem od lewej do prawej na liście, możesz szybko wybrać kilka zakładek,

    od prawej do lewej: przesuń je.

    Przyjemne drobiazgi

    Wysoko ciekawa funkcja, który nie jest dostępny w standardowych przeglądarkach: User Agent.

    Może przekonać przeglądarkę, że używasz domowego komputera lub urządzenia z innym systemem operacyjnym.

    Często mobilne wersje witryn są przycinane w celu szybszego ładowania i prawidłowego wyświetlania. Domyślnie UA jest ustawione na Androida,

    ale można to zmienić jednym kliknięciem. Oto przykład strony Google załadowanej różnymi agentami:

    Kolejna ciekawa, ale moim zdaniem trochę bezużyteczna funkcja: tryb nocny... To po prostu sprawia, że ​​strona jest szaro-czarna, a niektóre wpisy i zdjęcia po prostu znikają! Ale tej funkcji można użyć do regulacji jasności. Aby przejść do normalnego ekranu, wystarczy nacisnąć przycisk „tryb dzienny”.

    Możesz zrobić zrzut ekranu (zrzut ekranu) bezpośrednio w przeglądarce za pomocą kilku kliknięć. W takim przypadku usuwane jest tylko okno programu.

    Osobiste doświadczenie

    Prędkość

    Ładowanie stron, nawet przy wolnym połączeniu, jest wystarczająco szybkie. Witryny ładują się średnio 3-12 sekund szybciej niż przeglądarki Android i 4-6 sekund szybciej niż Chrome. Jednak na przykład UltraLight Browser ma znacznie lepszą prędkość, ale karty nie są tam obsługiwane.

    Przy wczytywaniu kilku stron jednocześnie, np. w różnych zakładkach, zauważyłem spadek szybkości o około połowę, a czasem nawet Google ładował się przez pół minuty!

    Praca w wolnym internecie

    Używałem przeglądarki zarówno do Wi-Fi, jak i 3G. Mój operator ma dość niską prędkość połączenia w ciągu dnia, ale w takich warunkach najlepsze wyniki osiąga Boat Mini, dlatego stał się moim głównym pomocnikiem w trudnych warunkach ☺.

    Odloty

    Przeglądarka rzadko się zawiesza: w miesiącu użytkowania wystąpiło tylko jedno zawieszenie. Reakcja na naciśnięcie jest zawsze bezbłędna, chociaż czasami można po prostu przegapić przycisk!

    niedogodności

    Chodzi o cnoty. Ale oczywiście nie bez wad. O jednym z nich pisałem na samym początku: małe przyciski menu. Znajdują się one jednak daleko od siebie, więc trudno je przeoczyć. Ale menu kontekstowe nie jest takie proste: możesz łatwo dodać skrót zamiast zapisywać stronę.

    Kolejną wadą jest to, że jeśli naciśniesz przycisk „home” (czyli standardowy przycisk sprzętowy systemu), to po powrocie do przeglądarki wszystkie otwarte strony są ponownie ładowane. Chociaż zwykle zdarza się to rzadko, jeśli otwartych jest wiele kart, jest to raczej frustrujące. Jeśli jednak przełączasz się między otwartymi aplikacjami bez powrotu do pulpitu, tak się nie dzieje.

    Nie zachęca również to, że zakładki nie mogą być synchronizowane, tak aby zostawiając zakładkę na komputerze (w wersji przeglądarki na Windows), można ją znaleźć na tablecie i smartfonie. Możliwe jest jednak przeniesienie wszystkich zakładek ze standardowej przeglądarki Androida w ciągu kilku sekund. Chociaż dla osób aktywnie korzystających z wielu urządzeń ta przeglądarka prawdopodobnie nie stanie się główną.

    3. Przeglądarka łodzi

    Prawie ta sama przeglądarka, tylko bez przedrostka „mini” w nazwie i z niewielkimi różnicami w interfejsie. Oto kilka zrzutów ekranu, które to pokazują:

    Organizacja zakładek bardziej przypomina Google Chrome niż Boat Mini.

    Oprócz zwykłych zakładek na górze znajduje się również menedżer stron:

    Ogólnie rzecz biorąc, organizacja stron jest nie do pochwały: oprócz zakładek i menedżera strony możesz kontrolować ją za pomocą gestów.

    Kontrola gestów

    Rysuj bezpośrednio na stronie, choć domyślnie nie będzie to widoczne, ale jeśli gest zostanie narysowany poprawnie, zostaniesz zabrany tam, gdzie chcesz.

    Jeśli chcesz, aby był widoczny podczas rysowania gestu, po prostu zmień go w ustawieniach. To prawda, że ​​będziesz ciągle mieć ślady powiększania i przewijania, a wkrótce zniknie. Wstępnie zdefiniowane gesty są nieliczne i służą głównie do zarządzania kartami. Z witryn za pomocą gestów można otwierać tylko Google i Facebook.

    4. Maxthon

    Berło

    Pierwsza duża zaleta programu: przyjazny interfejs użytkownika, który orientacja krajobrazu bardzo różni się od wszystkich przeglądarek, z którymi kiedykolwiek miałem do czynienia. Aby zostawić zakładkę lub zobaczyć pasek adresu, po prostu przeciągnij półprzezroczysty łuk na samej górze.

    Karty

    Aby uzyskać dostęp do zakładek, dotknij małego kółka w dolnym rogu i podciągnij.

    Aby zamknąć otwartą stronę, po prostu przeciągnij jej miniaturę.

    Taka kontrola jest bardzo wygodna, gdy nie chcesz zaśmiecać ekranu, ale jeśli chcesz jak zwykle zobaczyć wszystkie zakładki u góry strony, możesz zmienić ustawienia wyświetlania, klikając „przywróć” lub po prostu obróć urządzenie.

    Przyjemne drobiazgi

    Największą zaletą przeglądarki jest zachmurzenie. Tak mówią twórcy. Nie jest to dla mnie ważne, ale fajnie jest pomyśleć, że wszystkie moje zakładki, a nawet pliki do pobrania, są bezpieczne. Maxthon był pierwszą przeglądarką, która umożliwiała synchronizację wszystkich urządzeń za pomocą chmury. Teraz wręcz przeciwnie, trudniej jest znaleźć przeglądarkę bez synchronizacji, a to nie jest główna różnica między przeglądarką. Chociaż w przeciwieństwie do innych przeglądarek, które w najlepszym przypadku zapisują tylko zakładki i ustawienia, Maxthon synchronizuje wszystko. Nawet pobrane pliki są zapisywane w chmurze, wystarczy przed pobraniem pozostawić znacznik wyboru w wyskakującym okienku.

    łyżka smoły

    Gdyby nie ona, przeglądarka byłaby idealna, ale nic nie jest idealne… Tar jest tutaj reprezentowany w postaci ciągłych awarii. Cóż, nie tak regularnie, ale nadal psuje całą radość, szczególnie nieprzyjemne jest wejście do wcześniej zminimalizowanego programu, aby stwierdzić, że wszystkie strony zostały zamknięte, podobnie jak sama przeglądarka. Startuje nie tylko po złożeniu, ale i tak po prostu, bez wyraźnego powodu. Tyle, że wszystkie otwarte zakładki znikają, pozostawiając stronę, która już zacięła zęby. szybki dostęp... Ale nadal ogólne wrażenie z przeglądarki jest przyjemny, chociaż do pisania tej recenzji nie korzystałem z niej ☺.

    5. Maxthon HD

    Wersja poprzednia przeglądarka zaprojektowany specjalnie dla tabletów.

    Interfejs różni się nieco od zwykłej przeglądarki Maxthon, a oto kilka skórek dla porównania.

    Tryb nocny:

    Dodawanie zakładki:

    Kiedy po raz pierwszy otworzysz przeglądarkę, możesz zarejestrować się lub zalogować pod własnym nazwiskiem i wybrać zdjęcie użytkownika, które zawsze będzie wyświetlane w lewym górnym rogu. Jak widać, postawiłem moją papugę ☺.

    Witryna to nie tylko przeglądarka. Jeśli rozumiesz angielski, może to być świetne źródło fascynujących artykułów. Stamtąd możesz przejść do najpopularniejszych witryn, sieci społecznościowych, sklepów internetowych i wyszukiwarek.

    Oba Maxthone są doskonałymi „przyjaciółmi” ze sobą: można je synchronizować w chmurze, jeśli wpiszesz każdy z nich pod tą samą nazwą, zakładki i historia będą takie same, a rozszerzenia pobrane dla jednej przeglądarki automatycznie pojawią się w drugiej.

    Aby pojawiły się półprzezroczyste przyciski, nie wystarczy dotknąć ekranu: trzeba przybliżyć lub przewinąć, czyli np. przewiń lub powiększ stronę. Możesz szybko przewrócić stronę zarówno za pomocą samego interfejsu, jak i za pomocą przycisków głośności.

    Funkcje i możliwości są takie same jak w poprzedniej przeglądarce, więc nie będę się powtarzał. Chociaż oczywiście ta przeglądarka ma swoją własną

    Przyjemne drobiazgi

    Oprócz zwykłych zakładek strony mogą być wyświetlane jako małe miniatury. Aby to zrobić, po prostu kliknij drugi przycisk od dołu.

    Przeglądarka jest bardzo zwinna i świetnie nadaje się do przeglądania dużych stron. Powiększanie i przewijanie są natychmiastowe, a strona jest aktywna! Przez cały czas użytkowania nigdy się ze mną nie rozbił. Uczucia są tylko pozytywne!

    Unikalna przeglądarka w 5 minut

    Jedną z najciekawszych propozycji firmy Maxthon jest zbudowanie własnej przeglądarki! A do tego nie musisz nawet pobierać zwykłej przeglądarki. Wystarczy przejść z ulubionej przeglądarki na http://custom.maxthon.com/custom/.

    Radzę wcześniej przygotować ikonę dla przyszłej przeglądarki (zdjęcie 72 na 72) oraz tło (480 na 800).

    Jeśli jesteś zbyt leniwy, aby poważnie szukać zdjęć, a po prostu chcesz wypróbować tę funkcję, możesz wszędzie wybrać standardowe ustawienia, a otrzymasz zwykłą przeglądarkę Maxthon, tylko z własnym nazwiskiem. Gotowe dzieło sztuki możesz pobrać za pomocą linku, który zostanie do Ciebie wysłany na skrzynka pocztowa... Radzę wcześniej zaznaczyć w ustawieniach obok pozycji umożliwiającej instalację aplikacji spoza Sklepu Play.

    6. Przeglądarka UltraLight

    Ultralekka przeglądarka, w minimalistycznym stylu, bez zbędnych funkcji. Idealny do szybkiego przeglądania linków lub na przykład do sprawdzenia pogody i kursów walut. Możesz zostawić zakładki. Ale zawsze jest tylko jedna zakładka.

    Strona jest całkowicie pusta, z wyjątkiem małego niebieskiego… jak powinienem to nazwać… małego niebieskiego przedmiotu.

    Wystarczy go pociągnąć, aby zobaczyć adres, przycisk ustawień i dodać zakładkę.

    Nie ma historii. W teorii to „urządzenie” może być nie tylko niebieskie, ale także metaliczne lub czarne. Ale nie mogę tego zmienić, mam nadzieję, że po aktualizacji będzie lepiej.

    Przyjemne drobiazgi

    Prędkość. To oczywiście zawsze jest przyjemne, chociaż nie jest to drobiazg. Strony ładują się wystarczająco szybko i oczywiście chciałbym mieć dobre surfowanie po sieci przy tej prędkości. Alternatywnie możesz przeglądać Wikipedię, klikając łącza w artykule. Chociaż istnieje dla niej wiele osobnych programów, które pozwalają zapisać stronę i pokazywać pobliskie artykuły na mapie (dzięki tej funkcji dowiedziałem się, że mijam punkt orientacyjny dwa razy dziennie ☺).

    Ogólnie rzecz biorąc, przeglądarka nie udaje, że jest najważniejszą i ulubioną, ale dzięki funkcji „szybko przeglądaj link” radzi sobie z plusem!

    7 i 8. Opera Mini i Opera Mobile

    Wiele osób wie, że najpopularniejszą przeglądarką mobilną jest Opera. Ale który? Co jest lepsze: Mini czy Mobile? Ja sam dawno temu zdecydowałem, że oba są dobre, ale później ściągnąłem Operę Mobile i bardziej przywiązałem się do Mini. Mam to na moim starym telefonie Sony Ericsson była jedyną normalną przeglądarką. Wygląda na to, że jego system operacyjny to Symbian. Strony ładowały się wystarczająco szybko dla GPRS, interfejs był ładny, dobra integracja z komputerem. Wszystko jest lepsze tylko na Androidzie! Przeglądarka jest po prostu stworzona do przyjemnego sterowania dotykiem. Mówię o obu wersjach ☺.

    Jaka jest różnica?

    Cóż, przede wszystkim różne ikony aplikacji:

    Po drugie: Opera Mobile wydaje się być bardziej tabletem…

    Szybkość Opery Mini jest o kilka sekund lepsza, choć nie jest to tak zauważalne, jeśli nie w porównaniu ze stoperem w ręku ☺.

    Ale wciąż jest różnica: w Operze Mini możesz natychmiast wyszukiwać z paska wyszukiwania w usługach Yandex i Wikipedia. To dodaje korzyści przeglądarce.

    Organizacja zakładek w obu przeglądarkach jest równie wygodna, nie zauważyłem żadnych ograniczeń w ich ilości.

    Ogólnie obie przeglądarki mogą z powodzeniem twierdzić, że są przeglądarką domyślną, ale osobiście z nich wolę pierwszą opcję.

    9. Jedna przeglądarka

    Bardzo ciekawa, ładna przeglądarka. To prawda, że ​​bez wsparcia języka rosyjskiego, a witryny oferowane do szybkiego dostępu są również w języku angielskim, przeglądarka przyciąga ładną ikoną, dobrą szybkością i stabilnością.

    Ale najpierw najważniejsze.

    Berło

    Podobnie jak stara przeglądarka UC, nic specjalnego. Pasek adresu i pasek wyszukiwania są oddzielone i wydaje się trochę staroświeckie. Nie ma tak fajnych elementów, które można przesuwać, rozciągać, rozciągać jak w Maxthonie. Poważne skargi dotyczące wygląd zewnętrzny nie, ale są ładniejsze interfejsy.

    Zakładki

    Organizacja zakładek jest zwyczajna: możesz zostawić swoją ulubioną stronę w zakładkach, dodać skrót do panelu szybkiego dostępu lub do pulpitu.

    Karty

    Aby uzyskać dostęp do zakładek, należy najpierw kliknąć na półprzezroczysty przycisk po prawej stronie, a następnie w jubilerski sposób przejść do ikony zakładek, gdzie prezentowane są miniatury otwartych stron. Wśród nich na pewno znajdzie się panel szybkiego dostępu, jeśli oczywiście go specjalnie nie zamknąłeś.

    Menu kontekstowe. Jest podobny do przeglądarek łodzi:

    Osobliwości

    Dla mnie osobiście interesujące było przeglądanie chińskiego Internetu za pomocą wbudowanej wyszukiwarki Naver ☺.

    10. Firefox

    Jedna z najpopularniejszych przeglądarek.

    Interfejs jest piękny i animowany. Ale zarządzanie nie jest zbyt dobre. Na przykład, jeśli przesuniesz listę zakładek po lewej stronie (musisz w tym celu wejść do małego przycisku), będziesz chciał ją zamknąć, po prostu odciągając. Ale to nie zadziała. Musisz ponownie wejść w ten sam przycisk. A jeśli chcesz zawsze widzieć swoje zakładki, będziesz musiał pogodzić się z tym, że otwarta strona będzie w połowie widoczna.

    Dlaczego zacząłem od wad? Chciałem tylko szybko o nich napisać i przejść do opisu wielu zalet przeglądarki.

    Berło

    Jak już pisałem, jest po prostu świetny! Na przykład, jeśli spróbujesz zmniejszyć niepowiększoną stronę, program nie tylko zignoruje twoje działania. Strona skurczy się, dopóki jej nie zwolnisz i powróci do normalnego kształtu. Drobiazg, ale fajny ☺.

    Szybkość jest po prostu świetna, bez porównania ze standardową przeglądarką na Androida.

    Niezawodność na najwyższym poziomie. Nigdy nie wystartowałem. Strony internetowe mogą być ładowane we wszystkich zakładkach jednocześnie, nawet przy zamkniętej przeglądarce.

    Są tak przyjemne doznania z korzystania z programu, że nie da się ich wytłumaczyć, ponieważ ogólna opinia długoterminowa składa się z drobiazgów. A Firefox jest jednym z takich przypadków. (Innym przypadkiem przeglądarek są przeglądarki Maxthon, które absolutnie uwielbiam ☺.)

    Wszystkie zakładki we wszystkich przeglądarkach

    Jeśli więc zastosowałeś się do moich rad i pobrałeś kilka przeglądarek i aktywnie korzystasz ze wszystkich (lub przynajmniej większości) przeglądarek, uporządkowanie zakładek będzie wydawać się problemem. Lub masz już dziesiątki zakładek w każdej przeglądarce, a jeśli chcesz odwiedzić swoją ulubioną witrynę, będziesz musiał pamiętać, w której przeglądarce zostawiłeś zakładkę. Dla mnie też był to problem, ale znalazłem rozwiązanie. I nie tylko jeden. ☺

    Po pierwsze, możesz po prostu skopiować adres łącza i zapisać go w dowolnym notatniku. Najlepszym sposobem Oczywiście Evernote.

    Czwartym sposobem synchronizacji zakładek jest witryna Stu zakładek.

    Wystarczy raz zostawić zakładkę na samej stronie w każdej przeglądarce i tam zapisać zakładki. Możesz także przeglądać zakładki innych osób, a jeśli nie chcesz wyświetlać swoich, po prostu ustaw je jako prywatne.

    Piątym sposobem na zaoszczędzenie jest strona http://zakladki.by i aplikacja na Androida. Program jest bardzo wygodny, doskonale porządkuje zakładki i posiada możliwości social media. Aby za pomocą kilku kliknięć zostawić zakładkę na komputerze, po prostu dodaj witrynę do ulubionych.

    Praca w programie to także całkiem wygodny, intuicyjnie prosty, minimalistyczny interfejs. I jeszcze jeden fajny szczegół: możliwe jest importowanie już utworzonych zakładek, ale tylko z komputera i tylko przez stronę.

    Pierwszy to oczywiście ja Edytor tekstu... Korzystałem z programu Kingsoft Office.

    Jedyne całkowicie darmowe wielofunkcyjne biuro na Androida. Oto formaty, które możesz utworzyć:

    Celowo umieściłem beżowe tło i brązowe litery. Ale nie będę opisywał wszystkich funkcjonalności, bo inaczej ledwo dam radę do marca. Do następnego.

    ). To świetnie, bo możesz zobaczyć, jaki jesteś wspaniały, robiąc tak wiele ☺.

    Oczywiście nie mogłeś nie zauważyć (jeśli oglądałeś zrzuty ekranu pod lupą) małe ikony po lewej stronie. To jest program Floating Touch.

    Nie otwiera się, gdy normalna aplikacja, ale pozostaje na szczycie wszystkich aplikacji. W rzeczywistości to tylko naklejki. Bardzo ładne naklejki.

    Ostatnia rzecz: opisałem 10 przeglądarek, ale z której sam korzystałem? Na przykład, aby pobrać zrzuty ekranu. Ten, o którym pisałeś w określonym momencie? Romantyczny, ale niewygodny. Po co rejestrować się w Yandex 10 razy?! Standard? Nie, zbyt niezdarny. I oczywiście mój ukochany Maxthon przesyła, ale nie więcej niż jedno zdjęcie dziennie ☺. Gdybym go używał, prawie bym tego nie zrobił do przerwy letniej… Skorzystałem z Przeglądarki łodzi Mini. Tak, pewnie dlatego jego recenzja jest najdłuższa ☺. Prędkość jest średnia, a obciążenia stabilne. W przeciwieństwie do UltraLighta, który w ogóle odmówił wstawienia zdjęcia…

    Po prostu mam obsesję na punkcie ściągania wszystkiego, co złe (nie, przeciwnie, co jest dobre. Bez udostępniania plików ☺). I potrząsam wszystkim w zestawach. Książki (już 1600 na czytniku), czasopisma (trochę mniej), filmy (cóż, sam pewnie znasz tysiące sposobów na pobieranie z VK i YouTube) i strony internetowe (dzięki wspaniałej aplikacji Pocket, która jest polecana przez Google O tym pewnie też napiszę całą osobną recenzję ☺). Jakoś chciałem uzupełnić kolekcję aplikacji do zapisywania notatek, a do tego ściągnąłem 20 aplikacji. Tak, dokładnie 20.

    Wtedy internet został odcięty (mój operator uwielbia okrągłe liczby ☺). Tym razem więc pod moją gorącą (już rozgrzaną przez gorący tablet) rękę trafiły przeglądarki. Ale przed napisaniem recenzji dobrze je przetestowałem. Przez cały miesiąc było to moje ciekawe zajęcie, z którym się teraz żegnam i mam szczerą nadzieję, że moje spostrzeżenia okażą się przydatne. Dziękuje za przeczytanie.

    Dziewczyna ze srebrnym pierścionkiem

  • Kochanie, jestem studentem bca. Mam do zrobienia jeden projekt w ostatnim semestrze. Postanowiłem więc stworzyć stronę internetową działającą na systemie Android, ale jestem całkowicie za tą aplikacją. Czy ktoś może mi w tym pomóc. Wszystko już zainstalowałem niezbędne narzędzia takich jak jdk, android sdk 3.0, eclipse. Ale teraz nie mam pojęcia, od czego powinienem zacząć tworzenie przeglądarki. Więc proszę o pomoc... Mam tylko 2 miesiące na ten projekt. Czy to możliwe za 2 miesiące, czy nie?

    To zależy od tego, co masz na myśli, rozwijając swoją przeglądarkę…

    Stworzenie przeglądarki + silnika renderującego od podstaw to dużo pracy, ale bez problemu można zbudować przeglądarkę opartą na Androidach WebView za pomocą WebViewClient i stworzyć nową interfejs użytkownika zmieniając sposób interakcji użytkownika z przeglądarką.

    Webview ma wszelkiego rodzaju przechwytywacze do przechwytywania interakcji przeglądarki, dzięki czemu można je łatwo rozszerzyć. Na przykład możesz pozwolić użytkownikowi przeglądać strony (jak Google Fastflip), eksperymentować z 3D, mapować renderowaną stronę internetową w przestrzeni OpenGL (jak w przeglądarce sferycznej) itp.

    Na początek zajrzyj na blog Alexandra Kmetka i jego projektu Mosambro, który rozszerza przeglądarkę Android o obsługę mikroformatów.

    Brzmi jak naprawdę duży projekt, więc nie możesz zacząć od zera i nagrywać go. Powinieneś zaplanować, jak chcesz zaimplementować wszystkie części, napisać diagramy zajęć itp. Jeśli studiujesz informatykę, powinieneś o tym słyszeć w poprzednich semestrach.

    Najpierw musisz zadać sobie pytanie, czy ten projekt jest możliwy jak widać z komentarzy, większość ludzi zgadza się, że nie należy lekceważyć tego wyzwania!

    Naprawdę sugeruję, abyś zrozumiał zakres tego zadania, tutaj źródło Przeglądarka Androida, dająca wyobrażenie o jej złożoności.

    Zbudowanie podstawowej przeglądarki mogło zostać wykonane w dzień lub dwa dla osób z doświadczeniem w programowaniu Androida, podobnie jak inni stwierdzili, że WebView zapewnia prawie wszystko, czego potrzebujesz, aby wyświetlić stronę internetową. Istnieje kilka poprawek dotyczących JavaScript i innych funkcji do sprawdzenia, a następnie po zaznaczeniu głównego pola tekstowego dla przycisku url i przejdź, który jest w zasadzie główną przeglądarką internetową.

    Prawdziwa praca pojawia się we wszystkich zaawansowanych ustawieniach. Stworzenie przeglądarki, która konkuruje z dużymi graczami, może być trochę trudne dla jednej osoby w ciągu kilku miesięcy, ale stworzenie własnej, która działa, jest bardzo możliwe. Próbować!

    Aby stworzyć kompletną przeglądarkę internetową w systemie Android, używasz WebView.

    Proste wiązanie kodu:

    WebView wv = (WebView) findViewById (R.id.webview1); wv = (WebView) findViewById (R.id.webView1); wv.loadUrl („http://www.apsmind.com”);

    Android pozwala na stworzenie własnej przeglądarki internetowej, a nawet stworzenie własnego klonu przeglądarki za pomocą. Sam element korzysta z silnika WebKit i posiada wiele właściwości i metod. Ograniczymy się do podstawowego przykładu tworzenia aplikacji, za pomocą której będziemy mogli przeglądać strony w Internecie. V najnowsze wersje używany jest silnik z Chromium, ale nie ma w tym dużej różnicy w przypadku prostych zadań.

    Stwórzmy nowy projekt MojaPrzeglądarka i natychmiast podmień kod w pliku znaczników res / layout / activity_main.xml:

    Teraz otwórzmy plik aktywności MainActivity.java i zadeklaruj komponent, a także zainicjuj go - włącz obsługę JavaScript i określ stronę pobierania.

    Prywatne WebView webView; public void onCreate (Bundle installedInstanceState) (super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); webView = findViewById (R.id.webView); // włącz obsługę JavaScript webView.getSettings (). setJavaScriptEnabled (true) ; // określ stronę ładowania webView.loadUrl ("http: // site / android");)

    Ponieważ aplikacja będzie korzystać z Internetu, musisz ustawić uprawnienia internetowe w pliku manifestu.

    W tym samym miejscu w manifeście modyfikujemy linię dla ekranu, usuwając tytuł z naszej aplikacji (pogrubiony):

    android: theme = "@style / Theme.AppCompat.NoActionBar">

    Zacznijmy aplikację. Do dyspozycji mamy najprostszą przeglądarkę stron internetowych, ale z jedną wadą. Jeśli klikniesz dowolny link, automatycznie uruchomi się domyślna przeglądarka i Nowa strona będzie już tam wyświetlany. Dokładniej, tak było wcześniej. Na nowych urządzeniach uruchomienie aplikacji natychmiast otwiera przeglądarkę.

    Rozwiązać ten problem i aby otworzyć linki w swoim programie, musisz nadpisać klasę WebViewClient i pozwól naszej aplikacji obsługiwać linki. Dodajmy do kodu klasę zagnieżdżoną:

    Klasa prywatna MyWebViewClient rozszerza WebViewClient (@TargetApi (Build.VERSION_CODES.N) @Override public boolean shouldOverrideUrlLoading (widok WebView, żądanie WebResourceRequest) (view.loadUrl (request.getUrl (). ToString ()); return true;) // Dla stare urządzenia @Override public boolean powinienOverrideUrlLoading (widok WebView, adres URL ciągu) (view.loadUrl (url); zwraca true;))

    Następnie w metodzie naUtwórz () zdefiniuj instancję MyWebViewClient... Może znajdować się w dowolnym miejscu po zainicjowaniu obiektu:

    WebView.setWebViewClient (nowy MyWebViewClient ());

    Teraz nasza aplikacja powstała WebViewClient co pozwala na załadowanie dowolnego wybranego adresu URL do samego kontenera, zamiast uruchamiania przeglądarki. Za tę funkcjonalność odpowiada metoda, w której wskazujemy aktualny i wymagany adres URL. Wartość zwrotu prawda mówi, że nie potrzebujemy startu przeglądarka innej firmy i samodzielnie pobrać zawartość z linku. W wersji 24 API dodaliśmy przeciążoną wersję metody, pamiętaj o tym.

    Uruchom ponownie program i upewnij się, że linki są teraz załadowane w samej aplikacji. Ale teraz pojawił się kolejny problem. Nie możemy wrócić do poprzedniej strony. Jeśli naciśniemy przycisk WSTECZ na naszym urządzeniu, po prostu zamkniemy naszą aplikację. Aby rozwiązać nowy problem, musimy poradzić sobie z naciśnięciem przycisku WSTECZ. Dodaj nową metodę:

    @Override public void onBackPressed () (if (webView.canGoBack ()) (webView.goBack ();) else (super.onBackPressed ();))

    Musimy sprawdzić, co wspiera nawigację do poprzedniej strony. Jeśli warunek jest spełniony, metoda jest wywoływana Wróć (), który cofa nas o krok do poprzedniej strony. Jeśli takich stron jest kilka, to możemy konsekwentnie wracać do pierwszej strony. W takim przypadku metoda zawsze zwróci wartość prawda... Gdy wrócimy do pierwszej strony, od której rozpoczęliśmy naszą podróż w Internecie, wartość powróci fałszywe a przetwarzanie naciśnięcia przycisku WSTECZ zostanie przejęte przez sam system, który zamknie ekran aplikacji.

    Uruchom aplikację ponownie. Masz teraz własną przeglądarkę internetową, która umożliwia podążanie za linkami i powrót do poprzedniej strony. Po zapoznaniu się z dokumentacją możesz wyposażyć aplikację w inne smakołyki dla swojej przeglądarki.

    Jeśli chcesz otworzyć niektóre linki prowadzące do Twojej witryny w przeglądarce i otworzyć linki lokalne w aplikacji, użyj warunku z różnymi wartościami zwracanymi.

    Klasa publiczna MyWebViewClient rozszerza WebViewClient (@Override public boolean shouldOverrideUrlLoading (widok WebView, adres URL ciągu) (jeśli (Uri.parse (url) .getHost () .. ACTION_VIEW, Uri.parse (url))); view.getContext (). StartActivity (zamiar); zwróć prawdę;))

    Uniwersalna metoda, która otworzy wszystkie lokalne linki w aplikacji, resztę w przeglądarce (zmień jedną linię):

    Klasa publiczna MyAppWebViewClient rozszerza WebViewClient (@Override public boolean shouldOverrideUrlLoading (widok WebView, adres URL ciągu) ( if (Uri.parse (url) .getHost (). length () == 0)(return false;) Intent intent = new Intent (Intent.ACTION_VIEW, Uri.parse (url)); view.getContext() startActivity (zamiar); zwróć prawdę; ))

    Teraz trochę skomplikujmy przykład, aby użytkownik miał alternatywę dla standardowych przeglądarek.

    Aby było to jaśniejsze, przeróbmy przykład w następujący sposób. Utwórz dwie czynności. Umieść przycisk na pierwszym ćwiczeniu, aby przełączyć się na drugie ćwiczenie, i umieść komponent na drugim ćwiczeniu.

    W manifeście przepisujemy filtr dla drugiej aktywności.

    Kod przycisku, aby przejść do drugiej czynności.

    Public void onClick (View view) (Intent intent = new Intent ("ru.alexanderklimov.Browser"); intent.setData (Uri.parse ("http: // site / android /")); startActivity (intent);)

    Stworzyliśmy własną intencję wskazując filtr i podaliśmy dane - adres strony.

    Druga czynność powinna otrzymać dane:

    Pakiet ru.alexanderklimov.testaplikacja; importuj android.net.Uri; importuj android.support.v7.app.AppCompatActivity; importuj android.os.Bundle; importuj android.webkit.WebView; importuj android.webkit.WebViewClient; klasa publiczna SecondActivity rozszerza AppCompatActivity (@Override chronione void onCreate (Pakiet protectedInstanceState) (super.onCreate (savedInstanceState); setContentView (R.layout.activity_second); Uri url = getIntent ().GetData (); WebView webView = findViewById (R.id.webView); webView.setWebViewClient (nowe wywołanie zwrotne ()); webView.loadUrl (url.toString ()); ) klasa prywatna Callback extends WebViewClient (@Override public boolean shouldOverrideUrlLoading (widok WebView, String url) (return (false);)))

    W filtrze dla drugiej czynności określiliśmy dwie akcje.

    Oznacza to, że dowolna aktywność (odczyt, aplikacje) może wywołać Twoją aktywność w mini-przeglądarce w ten sam sposób. Uruchom dowolny stary projekt w osobnym oknie w studio lub stwórz nowy i dodaj do niego przycisk i napisz ten sam kod, którego użyliśmy do kliknięcia przycisku.

    Uruchom drugą aplikację (pierwszą aplikację można zamknąć) i naciśnij przycisk. Uruchomisz nie pierwszą aplikację z ekranem początkowym, ale od razu drugą czynność z mini-przeglądarką. W ten sposób każda aplikacja może uruchomić przeglądarkę bez znajomości nazwy klasy Twojej aktywności, ale przy użyciu tylko ciągu znaków „ru.alexanderklimov.Przeglądarka” przesłane do Zamiar... Biorąc to pod uwagę, Twoja aktywność w przeglądarce powinna mieć domyślną kategorię i dane. Pozwól, że ci przypomnę:

    Możesz przedstawić swój ciąg jako stałą ciągu i powiedzieć wszystkim potencjalnym użytkownikom przeglądarki, jak mogą go samodzielnie uruchomić. Ale Android ma już taką gotową stałą ACTION_VIEW który zgodnie z dokumentacją pomocy jest następujący:

    Publiczna statyczna wersja ostateczna java.lang.String ACTION_VIEW = "android.intent.action.VIEW";

    Przepiszmy kod przycisku w drugiej aplikacji

    Intencja (android.content.Intent.ACTION_VIEW, Uri.parse („http: // site / android /”)); startActivity (zamiar);

    Co się stanie tym razem? Pamiętamy, że mamy napisane dwie akcje, w tym i android.intent.action.VIEW... Oznacza to, że nasza pierwsza aplikacja z przeglądarką również powinna rozpoznać to polecenie, gdy jakaś aplikacja na użytkowniku użyje tego kodu. Emulator posiada przynajmniej jeden taki program „Przeglądarka”, a teraz została do niego dodana nasza druga aktywność z pierwszej aplikacji. Na ekranie pojawią się dwie aplikacje do wyboru.

    A jeśli usuniesz wszystkie alternatywne przeglądarki i zostawisz tylko swój program, nie będzie wyboru. Twoja przeglądarka stanie się przeglądarką główną. A jeśli jakaś aplikacja chce uruchomić stronę internetową w określony sposób, otworzy się twój program.

    Mała notatka. Jeśli zastąpisz ostatnią linię tym:

    StartActivity (Intent.createChooser (zamiar, „Miau…”));

    Następnie w oknie wyboru programu zamiast Górna linia„Otwórz za pomocą” lub jego lokalne tłumaczenie, pojawi się Twój ciąg. Ale to nie jest najważniejsze. Jeśli z jakiegoś powodu na urządzeniu nie pojawia się ani jedna przeglądarka, to ta opcja kod nie spowoduje awarii aplikacji, w przeciwieństwie do oryginalnej wersji. Dlatego skorzystaj z proponowanej opcji ze względu na niezawodność.

    Kupując smartfon z systemem Android, domyślnie zostanie zainstalowana co najmniej jedna przeglądarka. Może to być Google Chrome lub inna przeglądarka internetowa opracowana przez producenta. Ale jeśli już zainstalowana przeglądarka Ci nie odpowiada, możesz pobrać dowolną inną z Play Market. Jeśli Twoje urządzenie ma kilka podobnych aplikacji, konieczne staje się wybranie jednej z nich, która będzie używana domyślnie. W dalszej części artykułu opisano opcje, w jaki sposób możesz to osiągnąć.

    Domyślna przeglądarka dla Androida

    Obecnie istnieje wiele przeglądarek internetowych przeznaczonych dla urządzeń z systemem Android. Wszystkie mają swoje wady i zalety. Ale pomimo różnic, domyślnie możesz ustawić dowolny z nich na trzy różne sposoby. Każdy z nich zostanie szczegółowo opisany w dalszej części artykułu.

    Metoda 1: ustawianie parametrów systemu operacyjnego

    Najpopularniejszą i najłatwiejszą metodą instalacji domyślnej przeglądarki jest skonfigurowanie systemu operacyjnego. Aby zainstalować główną przeglądarkę internetową, wykonaj następujące kroki:

      1. Przejdź do ustawień swojego smartfona z ekranu głównego lub menu aplikacji.


      1. Otwórz przedmiot „Aplikacje i powiadomienia”.

      1. Przewiń w dół listy, aby znaleźć linię "Dodatkowe ustawienia"... Czasami na liście możesz nie widzieć tej sekcji, ponieważ jest ona ukryta na wykresie "Już".

      1. Następnie wybierz opcję „Aplikacje domyślne”.

      1. Wybierz sekcję "Przeglądarka" aby ustawić domyślną przeglądarkę internetową. Możesz także dostosować ustawienia wiadomości, telefonu, wprowadzania głosowego i nie tylko.

      1. Gdy pojawi się okno z listą wszystkich zainstalowane przeglądarki, zaznacz pole obok tego, który chcesz ustawić jako domyślny.


    1. Możesz teraz korzystać z przeglądarki internetowej. Wszystkie linki, komunikatory internetowe, będą nadal otwierać się w zainstalowanej przeglądarce.

    Ta metoda jest naprawdę bardzo prosta, a poza tym można ją zainstalować dodatkowe ustawienia Twój smartfon.

    Metoda 2: skonfiguruj przeglądarki internetowe

    Korzystając z ustawień, możesz ustawić dowolną przeglądarkę jako domyślną, z wyjątkiem standardowej przeglądarki Google Chrome. Możesz wykonać tę procedurę, wykonując kilka proste kroki... W dalszej części artykułu, na przykładzie mobilnej wersji przeglądarki Yandex i MozillaFirefox, wszystkie kroki, które należy wykonać, aby zainstalować główną przeglądarkę internetową, zostaną opisane bardziej szczegółowo. W przypadku innych przeglądarek procedura będzie podobna.

      1. Otworzyć wersja mobilna przeglądarki, w prawym górnym lub prawym dolnym rogu kliknij trzy pionowe kropki, aby otworzyć menu.


      1. Znajdź hrabiego „Ustawienia” lub „Opcje” i dotknij go, aby go otworzyć.

      1. Na proponowanej liście znajdź przedmiot Ustaw jako domyślną przeglądarkę i kliknij na niego. Jeśli korzystasz z Yandex Browser, możesz znaleźć tę sekcję na strona główna w menu paska wyszukiwania.

      1. Następnie na ekranie pojawi się zakładka, w którą należy kliknąć „Ustawienia”.

      1. Zostaniesz przeniesiony na stronę ustawień "Aplikacja domyślna"... Teraz wykonaj te same kroki, jak opisano w paragrafach 5, 6 i 7 poprzedniej metody.


    Ta opcja jest bardzo podobna do metody opisanej powyżej. Po wykonaniu określonych czynności nadal będziesz przechodzić do sekcji „Aplikacje domyślne”. Ale dając pierwszeństwo tą drogą, będziesz mógł skonfigurować ustawienia bez opuszczania przeglądarki internetowej.

    Metoda 3: aktywny link

    Ta opcja ma te same zalety, co opisana pierwsza metoda. Możesz ustawić dowolną przeglądarkę jako główną w swoim smartfonie, jeśli daje taką możliwość.

    Ta metoda ma znaczenie tylko wtedy, gdy pobrałeś nowa przeglądarka ze Sklepu Play lub główna przeglądarka internetowa nie była wcześniej zainstalowana na Twoim telefonie.

    1. Przejdź do aplikacji, która zawiera aktywny link, kliknij, aby przejść. Jeśli pojawi się okno z listą działań, wybierz "Otwarty".
    2. Zobaczysz zakładkę, w której musisz wybrać przeglądarkę internetową, aby otworzyć link. Powinna to być przeglądarka, którą chcesz widzieć jako główną na swoim smartfonie, a następnie sprawdź przycisk "Jest zawsze".
    3. Wybrany link otworzy się w wybranej przeglądarce, która zostanie domyślnie zainstalowana.

    Niestety, Ta metoda nie dotyczy aplikacji takich jak Telegram, VKontakte i tym podobnych. Nie można jej używać we wszystkich sytuacjach. Jeśli jednak niedawno zainstalowałeś przeglądarkę internetową lub ustawienia domyślne zostały usunięte, ta opcja jest dla Ciebie idealnym rozwiązaniem.

    Opcjonalna instalacja przeglądarki internetowej w celu śledzenia wewnętrznych linków

    Niektóre aplikacje mają wbudowany system odczytu linków o nazwie WebView. W przypadku tych programów jako główna przeglądarka używana jest przeglądarka GoogleChrome lub wspomniane już narzędzie WebView. W razie potrzeby możesz zmienić ten parametr.
    Wszystkie znane przeglądarki internetowe nie posiadają tej funkcji, więc będziesz musiał szukać wśród mniej popularnych przeglądarek. Możesz zatrzymać się u widzów różni producenci już zainstalowany w zastrzeżonej powłoce systemu operacyjnego Android. Przed wykonaniem poniższych kroków upewnij się, że Twój smartfon ma aktywne menu. "Dla programistów".

    Aby zastąpić przeglądarkę WebView, wykonaj następujące kroki:

      1. Przejdź do ustawień i znajdź przedmiot "System" który znajduje się na dole listy.

      1. Następnie otwórz sekcję "Dla programistów"... Możesz go również znaleźć w głównym menu ustawień na końcu listy akcji.

      1. Teraz znajdź wykres „Usługa WebView” i uruchom go.

      1. Jeśli masz do wyboru kilka opcji przeglądania usług, wybierz tę, która najbardziej Ci odpowiada, zaznaczając pole wyboru w obszarze pola wyboru.

    1. Wszystkie linki otworzą się teraz w wybranej przez Ciebie przeglądarce.

    Przeglądarka linków, bardzo rzadko wymieniana. Możesz jednak skorzystać z tej opcji, jeśli Twój smartfon udostępnia powyższą opcję.

    W tym artykule opisano wszystkie możliwe metody ustawienia przeglądarki jako głównej dla smartfona z Androidem. W zależności od sytuacji zawsze możesz znaleźć odpowiednią dla siebie metodę.