Menü
Bedava
kayıt
ev  /  bellenim/ Android için tam teşekküllü bir tarayıcı yazıyoruz. WebView - kendi tarayıcınızı oluşturun Uygulama tarayıcınızı android nasıl yapılır

Android için tam teşekküllü bir tarayıcı yazıyoruz. WebView - kendi tarayıcınızı oluşturun Uygulama tarayıcınızı android nasıl yapılır

Çok uzun zaman önce Android için programlama öğrenmeye başladım. Eclips ilk Hello Word'ümü yayınladıktan sonra, hemen daha fazlasını istedim: birçok plan ve görkemli fikir vardı. Böyle bir fikir, kendi Tarayıcınızı yazmaktı. Birçok acemi programcının bu arzuya sahip olduğunu düşünüyorum. Bunlar benim belirlediğim gereksinimler ve sonunda olanlar.

  • Program bağlantıları açmalıdır küresel ağ, sayfalarda serbestçe ileri ve geri gezinin;
  • Dosyaları indirebilir ve ağa geri yükleyebilir;
  • Yer imleri oluşturun ve kaydedin;
  • Diğer uygulamalardan gönderilen bağlantıları indirebilir;
  • Bir ana sayfa düğmesi, farklı ayarlara sahip bir menü vb.

Genel olarak, kendi ellerinizle tam teşekküllü bir tarayıcı. Bunu koda koyalım.

Program, Android'de bulunan standart web görünümüne göre yazılmıştır. Olarak başlangıç ​​sayfası Yandex kullanıyorum, zevk meselesi. MainActivity, ana Faaliyet olacaktır.

Her şeyden önce, işaretlemeyi belirledik xml dosyası-aktivite_main.xml. Ana kap olarak LinearLayout kullanıyoruz - yükleme işlemini görüntülemek için ProgressBar'ı içine sarıyoruz. Ardından, başka bir LinearLayout kapsayıcı oluşturuyoruz - Webview ve FrameLayout'umuzu içine sarıyoruz (oynatılan videoyu tam ekrana genişletmek için kullanıyoruz).

Kodu Görüntüle

LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: araçlar = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: oryantasyon = "dikey" araçlar: bağlam = ". MainActivity">

MainActivity'de kod yazmaya başlayalım

MainActivity için tam kod.

Tam kodu görüntüle

Java.io.File'ı içe aktarın; android.R.menu'yu içe aktar; android.annotation.SuppressLint'i içe aktar; android.app.ActionBar'ı içe aktar; android.app.Activity'yi içe aktar; android.app.AlertDialog'u içe aktar; android.app.DownloadManager'ı içe aktarın; android.app.DownloadManager.Request'i içe aktarın; android.app.KeyguardManager'ı içe aktarın; android.app.SearchManager'ı içe aktarın; android.content.BroadcastReceiver'ı içe aktarın; android.content.Context'i içe aktarın; android.content.DialogInterface'i içe aktarın; android.content.Intent'i içe aktarın; android.content.IntentFilter'ı içe aktarın; android.content.SharedPreferences'ı içe aktarın; android.net.Uri'yi içe aktar; android.os.Bundle'ı içe aktar; android.os.Environment'ı içe aktarın; android.os.Parcelable'ı içe aktar; android.os.PowerManager'ı içe aktarın; android.preference.PreferenceManager'ı içe aktarın; android.provider.MediaStore'u içe aktarın; android.util.Log'u içe aktar; android.view.KeyEvent'i içe aktar; android.view.Menu'yu içe aktar; android.view.MenuItem'i içe aktar; android.view.View'i içe aktar; android.view.WindowManager'ı içe aktarın; android.webkit.ConsoleMessage'ı içe aktarın; android.webkit.DownloadListener'ı içe aktarın; android.webkit.ValueCallback'i içe aktarın; android.webkit.WebBackForwardList'i içe aktar; android.webkit.WebChromeClient'i içe aktarın; android.webkit.WebView'ü içe aktarın; android.webkit.WebViewClient'i içe aktarın; android.widget.FrameLayout'u içe aktarın; android.widget.SearchView'ı içe aktarın; android.widget.Toast'ı içe aktar; android.graphics.Bitmap'i içe aktarın; android.webkit.URLUtil'i içe aktar; genel sınıf MainActivity, Etkinliği genişletir (// Bağlantı durumu için Boolean değişkeni Boolean isInternetPresent = false; ConnectionDetector cd; özel WebChromeClient.CustomViewCallback mFullscreenViewCallback; özel FrameLayout mFullScreenContainer; özel Görünüm mFullScreenView; özel WebView mWebresent etkinliğinde; bu String aktivitesinde 1 nihai; public Uri imageUri; özel statik final int FILECHOOSER_RESULTCODE = 2888; özel ValueCallback mUploadMesajı; özel Uri mCapturedImageURI = boş; özel DownloadManager downloadManager; @Override protected void onCreate (Bundle saveInstanceState) (super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Örnek bir bağlantı dedektörü sınıfı oluşturun: cd = new ConnectionDetector (getApplicationContext ()); // ana sayfa düğmesi oluştur final ActionBar actionBar = getActionBar (); actionBar.setHomeButtonEnabled (true); actionBar.setDisplayHomeAsUpEnabled (true); // dosyanın yüklendiği niyetini yakalayın ve BroadcastReceiver alıcısına bildir = new BroadcastReceiver () (intent @Override public void onReceive (Context, Amaç bağlamı (String action = aim.getAction (); if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals (action)) (loadEnd ();))); // dosyanın yüklenme amacını yakalayın registerReceiver (alıcı, yeni IntentFilter (DownloadManager) .ACTION_DOWNLOAD_COMPLETE)); mWebView = (WebView) findViewById (R.id.web_view); mFullScreenContainer = (FrameLayout) findViewById (R.id.fullscreen_container); mWebView.setWebChromeViewClient (mWebChromeClient); loadUrl ("http://yandex.ru"); handleIntent (getIntent()); class HelloWebViewClient, WebViewClient'i genişletir (@Override public void onPageStarted (WebView görünümü, String url, Bitmap favicon) (super.onPageStarted (view, url, favicon); findViewById (R.id.progress1) .setVisibility (View.VISIBLE); setTitle ( url); urload = mWebView.getUrl (); ConnectingToInternet ();) @Override genel boolean needOverrideUrlLoading (WebView görünümü, Dize url) (view.loadUrl (url); // pazara bağlantılar başlat Uri uri = Uri.parse ( url ); if (uri.getScheme (). eşittir ("pazar")) (Amaç i = yeni Amaç (android.content.Intent.ACTION_VIEW); i.setData (uri); i.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (i); mWebView.canGoBack (); (mWebView.goBack ();)) // if (uri.getScheme (). equals ("mailto")) e-postayı çalıştır (Intent i = new Intent (android.content. Intent .ACTION_SEND); i.setType ("text / html"); i.putExtra (Intent.EXTRA_SUBJECT, "Konu girin"); i.putExtra (Intent.EXTRA_TEXT, "Metin girin"); i.putExtra (Intent. EXTRA_EMAIL , yeni Dize (url)); startAct canlılık (i); mWebView.canGoBack(); (mWebView.goBack ();)) // arayanı başlat if (uri.getScheme (). equals ("tel")) (Intent i = new Intent (android.content.Intent.ACTION_DIAL); i.setData (uri ); startActivity (i); mWebView.canGoBack (); (mWebView.goBack ();)) // if (uri.getScheme (). equals ("geo")) bölümünü başlat (Intent i = new Intent (android) .içerik ... Amaç.ACTION_VIEW); i.setData (uri); startActivity (i); mWebView.canGoBack(); (mWebView.goBack ();)) true döndür; ) @Override public void onPageFinished (WebView görünümü, Dize url'si) (findViewById (R.id.progress1) .setVisibility (View.GONE);) @Override public void onReceivedError (WebView görünümü, int errorCode, Dize açıklaması, Dize failingUrl) ( ConnectingToInternet (); mWebView.loadUrl ("dosya: ///android_asset/error.png");)) mWebView.setWebViewClient (yeni HelloWebViewClient ()); // dosyaları cihaza indir mWebView.setDownloadListener (yeni 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 ("İndirme Yöneticisi"); downloadDialog.setMessage ("Bu dosyayı İndirme klasörüne indirilsin mi?" + "n" + mimetype + " n "+ url); downloadDialog.setPositiveButton (" Evet ", yeni DialogInterface.OnClickListener () (genel geçersiz onClick (DialogInterface dialogInterface, int i) (doDownload (url, fileName); dialogInterface.dismiss ();))); downloadDialog .setNegativeButton ("Hayır", yeni DialogInterface.OnClickListener () (genel geçersiz onClick (DialogInterface dialogInterface, int i) ())); downloadDialog.show ();)); ) // ********************************************** // ***** * ************************************ // *************** ** ****************************** public void ConnectingToInternet () (// Internet bağlantısının durumunu alın isInternetPresent = cd.ConnectingToInternet () ; / / İnternet durumunu kontrol et: if (isInternetPresent) (// İnternet bağlantısı var // yap HTTP istekleri :) else (// İnternet bağlantısı yok Toast.makeText (bu, "İnternet düştü !!!", Toast.LENGTH_SHORT) .show ();)) @SuppressLint ("SetJavaScriptEnabled") @Override // settings public void onResume ( ) (super.onResume (); SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences (bu); if (sPref.getBoolean ("img", false)) (mWebView.getSettings (). setLoadsImagesAutomatically (yanlış);) else (mWebView .gettings ) .setLoadsImagesAutomatically (true);) if (sPref.getBoolean ("js", false)) (mWebView.getSettings (). setJavaScriptEnabled (false);) else (mWebView.getSettings (). setJavaScriptEnabled (true);) if ( sPref.getBoolean ("önbellek", yanlış)) (önbellek = 2;) else (önbellek = 1;)) // bir yer imi yazın public void saveBm (String urlPage1, String urlTitle1) (Niyet niyet = yeni Niyet (bu , SaveBmActivity. class); aim.putExtra ("urlTitle", urlTitle1); aim.putExtra ("urlPage", urlPage1); startActivity (intent);) public void pref (// Amaç ayarları niyet = yeni Amaç (bu, PreferencesActivity.class); startActivity (niyet); ) // önbelleği ve geçmişi temizle özel void clCache () (clearCache (etkinlik); mWebView.clearCache (doğru); mWebView.clearHistory (); Toast.makeText (bu, "Önbellek ve Geçmiş temizlendi", Toast.LENGTH_SHORT) .show ();) @Override protected void onUserLeaveHint () (super.onUserLeaveHint ();) @Override public boolean onKeyDown (int keyCode, KeyEvent olayı) (// geri düğmesi if ((keyCode == KeyEvent.KEYCODE_BACK)) (mWebView. canGoBack (); (mWebView.goBack ();) true return;) return super.onKeyDown (keyCode, event);) // çalışan programın url'sini yakalayın özel boolean handleIntent (Intent intent) (String action = aim.getAction (); if (Intent.ACTION_VIEW.equals (eylem)) (String url = aim.getDataString (); Toast.makeText (bu, url, Toast.LENGTH_SHORT) .show (); mWebView.loadUrl (url); // sayfayı yükle dönüş true;) false döndür;) // indirme yöneticisi private void doDownload (String url, String fileName) (Uri uriOriginal = Uri.parse (url); deneyin (Toast.makeText (MainActivity.th) is, "İndiriliyor" + dosyaAdı, Toast.LENGTH_LONG) .show (); İstek isteği = yeni DownloadManager.Request (Uri.parse (url)); request.setDestinationInExternalPublicDir (Environment.DIRECTORY_DOWNLOADS, dosyaAdı); final DownloadManager dm = (DownloadManager) getSystemService (Context.DOWNLOAD_SERVICE); dm.enqueue (istek); ) catch (İstisna e) (Toast.makeText (bu, "Error", Toast.LENGTH_SHORT) .show (); Log.e ("", "Problem indirme:" + uriOriginal, e);)) // video tam ekran özel final WebChromeClient mWebChromeClient = new WebChromeClient () (@Override @SuppressWarnings ("kullanımdan kaldırma") public void onShowCustomView (Görünüm, int requestOrientation, CustomViewCallback geri arama) (onShowCustomView (viewOver geri arama genel);) Görünüm görünümü, CustomViewCallback geri arama (eğer (mFullScreenView! = boş) (callback.onCustomViewHidden (); dönüş;) mFullScreenView = görünüm; mWebView.setVisibility (View.GONE); mFullScreenContainer.setVisibility (View.VISIBLE); mFullScreenContainer.addView (görünüm); mFullscreenViewCallback = geri arama; ) @Override public void onHideCustomView () (super.onHideCustomView (); if (mFullScreenView == null) (dönüş;) mWebView.setVisibility (View.VISIBLE); mFullScreenView.setVisibility (View.GONE); mFullScreenVisibilityContainer. GONE); mFullScreenContainer.removeView (mFullScreenView); mFullscreenViewCallback.onCustomViewHidden (); mFullScreenView = null;) // ****************************** ********************* ağa dosya yükleyin // Android 3.0+ için openFileChooser public void openFileChooser (ValueCallback uploadMsg, String acceptType) (// Güncelleme mesajı mUploadMessage = uploadMsg; try (// sdcard Dosyasında AndroidExampleFolder oluşturun imageStorageDir = new File (Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_PICTURES), "AndroidExampleFolder" (AndroidExampleFolder) ()) () / sdcard imageStorageDir.mkdirs (); içinde AndroidExampleFolder oluşturun; // Kamera tarafından yakalanan görüntü dosyası yolu ve adı oluşturun dosya dosyası= yeni Dosya (imageStorageDir + File.separator + "IMG_" + String.valueOf (System.currentTimeMillis ()) + ".jpg"); mCapturedImageURI = Uri.fromFile (dosya); // Görüntü yakalama kamera amacı final Intent CaptureIntent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE); CaptureIntent.putExtra (MediaStore.EXTRA_OUTPUT, mCapturedImageURI); Amaç i = yeni Amaç (Intent.ACTION_GET_CONTENT); i.addCategory (Intent.CATEGORY_OPENABLE); i.setType ("görüntü / *"); // Seçici dosyası oluşturma amacı Intent selectrIntent = Intent.createChooser (i, "Görüntü Seçici"); // Kameraları dosya seçim amacına ayarlayın selectrIntent.putExtra (Intent.EXTRA_INITIAL_INTENTS, yeni Parcelable (captureIntent)); // onactivityresult yöntemi için bir baypas görüntüsü seçmek için, aktivite yöntemini startActivityForResult (chooserIntent, FILECHOOSER_RESULTCODE) çağırın; ) catch (İstisna e) (Toast.makeText (getBaseContext (), "İstisna:" + e, Toast.LENGTH_LONG) .show ();)) // Android için openFileChooser< 3.0 @SuppressWarnings("unused") public void openFileChooser(ValueCallbackuploadMsg) (openFileChooser (uploadMsg, "");) // @SuppressWarnings ("kullanılmayan") public void openFileChooser (ValueCallback uploadMsg, String acceptType, String yakalama) (openFileChooser (uploadMsg, acceptType);) public boolean onConsoleMessage (ConsoleMessage cm) (onConsoleMessage (cm.message (), cm.lineNumber (), cm.sourceId ()); return true;) public void onConsoleMessage (String mesajı, int lineNumber, String sourceID) (//Log.d("androidruntime "," Konsol mesajlarını göster, Kullanılan hata ayıklama için : "+ ileti););); // setWebChromeClient'i sonlandır // Sonucu al @SuppressWarnings ("kullanılmayan ") özel Nesne verisi; @Override korumalı void onActivityResult (int requestCode, int resultCode, Intent data) (if (data = = null) (return;) String urlPage2 = data.getStringExtra ("urlPage2"); mWebView.loadUrl (urlPage2); if (requestCode == FILECHOOSER_RESULTCODE) (if (null == this.mUploadMessage) (return;) Uri sonucu = null ; deneyin (if (resultCode! = RESULT_OK) (result = null;) else (// amaç boş ise kendi değişkeninden ayıklayın sonuç = data == null? mCapturedImageURI: data.getData ();)) catch (İstisna e) (Toast.makeText (getApplicationContext (), "etkinlik:" + e, Toast.LENGTH_LONG) .show ();) mUploadMessage.onReceiveValue (sonuç); mUploadMessage = null;)) // ******* ************************* public void loadEnd () (Toast.makeText (bu, "Dosya Yükleme klasörüne yüklendi", Toast.LENGTH_SHORT) .show ( ) ;) // menu @Override public bo olean onCreateOptionsMenu (Menü menüsü) (// Menüyü şişirin; bu, varsa, eylem çubuğuna öğeler ekler. getMenuInflater () şişirmek (R.menu.main, menü); true döndür; ) // ************************************************** ** ****** @Override public boolean onOptionsItemSelected (MenuItem öğesi) (switch (item.getItemId ()) (örnek android.R.id.home: // ana sayfa düğmesi mWebView.loadUrl ("http: // yandex .ru") "); dönüş true; durum R.id.item1: // geri mWebView.canGoBack (); (mWebView.goBack ();) dönüş doğru; durum R.id.item2: // ileri mWebView.canGoForward () ; ( mWebView.goForward ();) doğru dönüş; durum R.id.item3: // mWebView.reload () yeniden yükle; (mWebView.reload ();) doğru dönüş; durum R.id.item4: // önbelleği temizle mWebView .clearCache (true); clearCache (etkinlik); Toast.makeText (bu, "Önbelleği temizle", Toast.LENGTH_SHORT) .show (); true döndürme; case R.id.item5: mWebView.clearHistory (); / / temiz Toast.makeText geçmişi (bu, "Geçmiş temiz.", Toast.LENGTH_SHORT) .show (); geri dön; durum R.id.item6: saveBm (mWebView.getUrl (), mWebView.getTitle ()); // bir yer imi dönüşü yaz true; case R.id.item7: // yer imi çubuğu Intent Intent1 = new Intent (bu , SaveBmActivity.class); startActivityForResult (niyet1, 1); true döndür; case R.id.item8: // mWebView.stopLoading () yüklemesini durdur; true döndür; case R.id.item9: tercih (); // ayarlar true döndürür; case R.id.item10: // şimdilik boş dönüş true; case R.id.item11: // çıkış if (önbellek == 2) (clCache ();) bitiş (); true döndür; varsayılan: super.onOptionsItemSelected (öğe) döndür; )) @SuppressWarnings ("kullanımdan kaldırma") @Override public void onDestroy () (super.onDestroy (); mWebView.stopLoading (); mWebView.clearCache (true); mWebView.clearView (); mWebView.freeMemory (); mWebView. yok et (); mWebView = null;) // önbelleği temizle void clearCache (Bağlam bağlamı) (clearCacheFolder (context.getCacheDir ());) void clearCacheFolder (son Dosya dizini) (if (dir! = null && dir.isDirectory ()) (try (for (File child: dir.listFiles ()) (// önce dizinleri tekrar tekrar temizleyin if (child.isDirectory ()) clearCacheFolder (child); değilse // sonra gerçek alt dosyalar .delete ();)) yakalama (İstisna e) ())))

Proje indirilebilir

İyi günler!

Öyle oldu ki, bir tarayıcının incelemesini yazıp diğerleriyle karşılaştırdıktan sonra, her biri hakkında daha fazla yazmak istedim, çünkü her biri belirli bir şey için iyidir (görünüşe göre, daha spesifik ne olabilir ki). internette gezinme ☺) ... Bir tarayıcıda mükemmel net arayüz, ancak yüklenmesi uzun zaman alıyor, diğeri çok fazla enerji tüketiyor ve genellikle çöküyor, ancak üzerinde çalışmak uygun büyük miktar sekmeler ve üçüncüsü, ilgilenilen bağlantıyı hızlı bir şekilde görüntülemek için mükemmeldir. Seçmek zorunda değilsin. Ne istersen indir. Yer imlerini senkronize etmeye gelince, bu bir sorun değil, bunları tüm tarayıcılar için aynı anda nasıl kaydedebileceğinizi birkaç şekilde ayrıntılı olarak açıklayacağım. Ve herhangi bir tarayıcının arayüzünü beğenmediyseniz (ki, sayıları verildiğinde olası değildir ☺) - kendinizinkini yaratın. Sadece kendi tarayıcınızı yaratın !!! Bu imkan, listede favorim olarak işaretlediğim tarayıcı tarafından sağlanmaktadır.

Programların açıklamasını faydalı kılmak için iki bölüm halinde yazacağım:

  • programın açıklaması: notların nasıl kaydedileceği ve sıralanacağı, yüklemenin hızlandırılması, temalar ve ayarlar kullanılarak görünümün ve istenen işlevlerin nasıl özelleştirileceği ve tarayıcıyı diğerlerinden ayıran küçük şeyler;
  • kişisel kullanım deneyimi: Bu tarayıcı hakkında sevdiğim ve bulduğum kusurlar.

    İlki, programı indirdikten sonra kontrolleri anlamayı kolaylaştırmak için faydalıysa, ikincisi onu indirip indirmemeye karar vermenize yardımcı olacaktır.

    Not: Tarayıcılar Sony Xperia Tablet S'de kullanılmıştır. Diğer cihazlarda farklı hızlar ve özellikler mümkündür. Ancak gözlemlerden, arayüz ve işlevler aynı kalıyor.

    Tabletimde 12 tarayıcı var. Standart android tarayıcı ve Google Chrome hariç, tam olarak on tane kaldı:

  • UC Tarayıcı;
  • Tekne Tarayıcısı (standart);
  • Tekne Mini;
  • Opera Mini;
  • Opera Mobil;
  • UltraLight Tarayıcı;
  • Bir Tarayıcı;
  • Firefox;
  • Maxthon;
  • Maxthon HD (favorim).

    1. UC Tarayıcı

    Arayüz

    Programın görünümü minimalisttir ve daha çok akıllı telefonlar için tasarlanmıştır.

    Varsayılan olarak portre modunda çalışır. Tema yükleme desteklenmiyor. Maksimum indirme sayısı 5 ile sınırlıdır... Ancak ayarları yaparsanız, tarayıcı diğer cihazlara oldukça iyi adapte edilebilir. Menü oldukça kullanışlı ve bunu anlamak armutları soymak kadar kolay!

    Bu tarayıcı, genellikle çok sıra dışı bir şekilde kullanılan sayfaları görüntüler, örneğin Yandex:

    Bu sayede sayfa birkaç saniye içinde yüklenir.

    Sekmeler

    Sekmeler ekranın üst kısmını işgal etmez; Açık sayfaları görmek için ekranın alt kısmındaki butona tıklamanız gerekiyor:

    Yer imleri

    Bir yer imi eklemek için sarı yıldız işaretine tıklamanız yeterlidir (bana bu yıldız işareti tüm tarayıcılarda aynı ☺ gibi görünüyor).

    Önceden oluşturulmuş herhangi bir klasörü kaydetmeyi veya kök dizinine kaydetmeyi ve ardından boş zamanlarınızda sıralamayı seçebilirsiniz. Doğrudan masaüstünüze bir yer imi gönderebilmeniz güzel.

    hoş önemsiz şeyler

    Manzara modunda yönetim çok sıra dışı! Muhtemelen hiç böyle jestler yapmadın. Geçerli sekmeyi kapatmak için iki parmağınızla dokunmanız ve ... aşağı kaydırmanız yeterlidir. Ve yeni bir sekme açmak için tam tersi.

    Benim fikrim

    Genel olarak mükemmel, hızlı tarayıcı, başka bir şeyle karşılaştırmak zor. Büyük unsurlar nedeniyle sahip olduğum gibi ilk izlenimin her zaman iyi olmamasına rağmen. Ancak arayüz, yalnızca ayarların yardımıyla neredeyse tanınmayacak şekilde değiştirilebilir. Bence bu tarayıcı kesinlikle dikkati hak ediyor ve cihazınızın hafızasında biraz yer kaplıyor.

    2. Tekne Tarayıcı Mini

    İlk olarak, genel bir açıklama ve küçük bir kullanım kılavuzu.

    Programın görünüşü

    Programın arayüzü oldukça basittir, ancak sezgisel olarak adlandırılması zordur. Menüyü çağırmak için kontrol düğmeleri ve alışmanıza rağmen dokunmatik kontrol için çok küçük.

    Ancak ekran dağınık değil ve kullanışlı. Altı düğme vardır ve bunlar en popüler işlemler içindir: yer imlerini kaydedin veya önceki veya sonraki sayfaya gidin.

    En sağdaki düğmenin arkasına daha gelişmiş bir menü gizlenmiştir. İlk açılışta, daha sonra ana sayfa olarak ayarlanarak herhangi bir siteyle değiştirilebilecek boş bir sekme belirir.

    Mobil sürümleri tema yüklemeyi desteklemeyen çoğu tarayıcının aksine, Boat Browser bunlara sahiptir: tüm temalar yüklü ve çevrimiçi temalara ayrılmıştır. İlki en azından her gün değiştirilebilir, tarayıcıya zaten yüklenmiştir, ancak özgünlük açısından farklılık göstermezler. Daha güzel çözümler istiyorsanız, temalar adresinden indirilebilir. Oyun marketi Tamamen ücretsiz.

    Ama bu teoride. Uygulamada, yalnızca bir temayı ve ardından ilk açılışta indirmeyi başardım. Diğer zamanlarda, sadece düştüm ana sayfa Oyun marketi.

    Sekmeler

    Tarayıcı, genellikle yeterli olan sekiz sekmeye kadar destekler. Chrome'dan farklı olarak ekranın üst kısmını işgal etmezler, alt kısımdaki küçük bir düğme ile erişilirler. Sekmeler, açık web sayfalarının küçük resimleri olarak sunulur ve kolayca çevrilebilir.

    Yer imleri

    Mevcut bir yer imini eklerken veya değiştirirken yer imlerinin önceden oluşturulmuş klasörler halinde sıralanabilmesi çok hoş.

    Yer imlerini yönetmek sezgiseldir: Listede soldan sağa kaydırırsanız, birkaç yer imini hızlıca seçebilirsiniz,

    sağdan sola: hareket ettirin.

    hoş önemsiz şeyler

    Büyük ölçüde ilginç fonksiyon, standart tarayıcılarda mevcut değildir: Kullanıcı Aracısı.

    Tarayıcıyı, farklı bir işletim sistemine sahip bir ev bilgisayarı veya cihazı kullandığınıza ikna edebilir.

    Çoğu zaman, sitelerin mobil sürümleri daha hızlı yükleme ve doğru görüntüleme için kesilir. Varsayılan olarak, UA Android olarak ayarlanmıştır,

    ancak tek bir tıklama ile değiştirilebilir. Aşağıda, farklı aracılarla yüklenmiş bir Google sayfası örneği verilmiştir:

    Bir başka ilginç, ama bence biraz işe yaramaz işlev: gece modu... Sadece sayfayı gri-siyah yapar ve bazı girişler ve resimler öylece kaybolur! Ancak bu fonksiyon parlaklığı ayarlamak için kullanılabilir. Normal ekrana geçmek için "gündüz modu" düğmesine basmanız yeterlidir.

    Birkaç tıklamayla doğrudan tarayıcıda bir ekran görüntüsü (ekran görüntüsü) alabilirsiniz. Bu durumda, yalnızca program penceresi kaldırılır.

    Kişisel deneyim

    Hız

    Yavaş bir bağlantıyla bile sayfaların yüklenmesi yeterince hızlıdır. Ortalama olarak, web siteleri Android tarayıcılardan 3-12 saniye ve Chrome'dan 4-6 saniye daha hızlı yüklenir. Ancak, örneğin, UltraLight Tarayıcı çok daha iyi bir hıza sahiptir, ancak sekmeler orada desteklenmez.

    Aynı anda birkaç sayfa yüklerken, örneğin farklı sekmelerde, hızın yaklaşık yarı yarıya düştüğünü fark ettim ve bazen Google bile yarım dakika yüklendi!

    Yavaş bir internette çalışmak

    Tarayıcıyı hem Wi-Fi hem de 3G için kullandım. Operatörüm gün içinde oldukça düşük bir bağlantı hızına sahip ancak bu şartlar altında en iyi hız sonuçlarını Boat Mini gösteriyor, bu yüzden zor koşullarda baş asistanım oldu ☺.

    Gidiş

    Tarayıcı nadiren çöküyor: Bir aylık kullanımda yalnızca bir donma oldu. Basmaya verilen tepki her zaman kusursuzdur, ancak bazen sadece düğmeyi kaçırabilirsiniz!

    Dezavantajları

    Her şey erdemlerle ilgili. Ancak, elbette, kusurlar olmadan değil. Bunlardan biri hakkında en başta yazdım: küçük menü düğmeleri. Ancak birbirlerinden uzakta bulunurlar, bu yüzden gözden kaçırmak zordur. Ancak bağlam menüsü o kadar kolay değil: sayfayı kaydetmek yerine kolayca bir kısayol ekleyebilirsiniz.

    Diğer bir dezavantaj ise, "ana sayfa" düğmesine (sistemin standart donanım düğmesi anlamına gelir) basarsanız, tarayıcıya döndükten sonra tüm açık sayfaların yeniden yüklenmesidir. Bu genellikle nadiren olmasına rağmen, açık çok sayıda sekme varsa, bu oldukça sinir bozucudur. Ancak, masaüstüne dönmeden açık uygulamalar arasında geçiş yaparsanız, bu olmaz.

    Ayrıca, yer imlerinin senkronize edilememesi de cesaret verici değildir, böylece bilgisayarda (tarayıcının Windows sürümünde) bir yer imi bırakarak tabletinizde ve akıllı telefonunuzda bulabilirsiniz. Ancak, standart Android tarayıcısından tüm yer imlerini birkaç saniye içinde aktarmak mümkündür. Aktif olarak birden fazla cihaz kullanan kişiler için, bu tarayıcının ana tarayıcı olması pek olası değildir.

    3. Tekne Tarayıcısı

    Hemen hemen aynı tarayıcı, yalnızca adında "mini" öneki olmadan ve arayüzde küçük farklılıklarla. İşte bunu gösteren bazı ekran görüntüleri:

    Sekmelerin organizasyonu daha çok Google Chrome Boat Mini'den daha iyi.

    En üstteki olağan sekmelere ek olarak, bir sayfa yöneticisi de vardır:

    Genel olarak, sayfaların organizasyonu övgünün ötesindedir: sekmelere ve sayfa yöneticisine ek olarak, hareketleri kullanarak kontrol edebilirsiniz.

    Hareket kontrolü

    Doğrudan sayfa üzerinde çizin, varsayılan olarak görünmese de, hareket doğru çizilirse, istediğiniz yere götürülürsünüz.

    Bir jest çizdiğinizde görmenizi istiyorsanız, ayarlardan değiştirmeniz yeterlidir. Doğru, o zaman sürekli yakınlaştırma ve kaydırma izlerine sahip olacaksınız ve yakında kaybolacaksınız. Önceden tanımlanmış hareketler çok azdır ve bunlar esas olarak sekmeleri yönetmek içindir. Sitelerden, hareketler kullanılarak yalnızca Google ve Facebook açılabilir.

    4. Maxthon

    Arayüz

    Programın ilk büyük avantajı: Kullanıcı dostu bir arayüz yatay yönlendirme uğraşmak zorunda kaldığım tüm tarayıcılardan çok farklı. Bir yer imi bırakmak veya adres çubuğunu görmek için en üstteki yarı saydam yayı sürüklemeniz yeterlidir.

    Sekmeler

    Sekmelere erişmek için alt köşedeki küçük daireye dokunmanız ve yukarı çekmeniz gerekir.

    Açık bir sayfayı kapatmak için küçük resmini yukarı sürüklemeniz yeterlidir.

    Bu tür bir kontrol, ekranı karıştırmak istemediğinizde çok kullanışlıdır, ancak tam tersine, tüm sekmeleri sayfanın üst kısmında her zamanki gibi görmek istiyorsanız, "geri yükle" düğmesine tıklayarak görüntü ayarlarını değiştirebilirsiniz. veya sadece cihazı çevirin.

    hoş önemsiz şeyler

    Bir tarayıcının en büyük avantajı bulutlu olmasıdır. Geliştiricilerin söylediği bu. Benim için önemli değil, ancak tüm yer imlerimin ve hatta indirdiklerimin güvenli olduğunu düşünmek güzel. Maxthon, tüm cihazların bulutu kullanarak eşitlenmesine izin veren ilk tarayıcıydı. Şimdi, tam tersine, senkronizasyon olmadan bir tarayıcı bulmak daha zor ve bu artık tarayıcı arasındaki temel fark değil. Yalnızca yer imlerini ve ayarları en iyi şekilde kaydeden diğer tarayıcıların aksine, Maxthon her şeyi senkronize tutar. İndirilenler buluta kaydedilse bile, indirmeden önce açılır penceredeki onay işaretini bırakmanız yeterlidir.

    bir kaşık katran

    O olmasaydı, tarayıcı mükemmel olurdu, ama hiçbir şey mükemmel değil ... Tar burada sürekli çökmeler şeklinde temsil ediliyor. Pekala, o kadar düzenli değil, ama yine de tüm neşeyi mahvediyor, özellikle daha önce simge durumuna küçültülmüş bir programa girdikten sonra, tarayıcının kendisi gibi tüm sayfaların kapandığını bulmak özellikle tatsız. Sadece katlandıktan sonra değil, aynı zamanda görünürde bir sebep olmadan da çıkar. Sadece tüm açık sekmeler kaybolur ve dişleri zaten kenarda bırakan bir sayfa bırakır. hızlı erişim... Ama hala, Genel izlenim tarayıcıdan hoş, ancak bu incelemeyi yazmak için kullanmadım ☺.

    5. Maxthon HD

    sürüm önceki tarayıcı tabletler için özel olarak tasarlanmıştır.

    Arayüz, normal Maxthon tarayıcısından biraz farklıdır ve burada karşılaştırma için bazı görünümler verilmiştir.

    Gece modu:

    Yer imi ekleme:

    Tarayıcıyı ilk açtığınızda, kendi adınızla kaydolmanız veya oturum açmanız ve her zaman sol üst köşede görüntülenecek olan bir kullanıcı fotoğrafı seçmeniz önerilir. Gördüğünüz gibi papağanımı ☺ koydum.

    Site sadece bir tarayıcıdan ibaret değildir. İngilizce'yi anlıyorsanız, büyüleyici makaleler için harika bir kaynak olabilir. Oradan en popüler sitelere, sosyal ağlara, çevrimiçi mağazalara ve arama motorlarına gidebilirsiniz.

    Her iki Maxthone de birbirleriyle mükemmel "arkadaşlardır": bulutta senkronize edilebilirler, her birini aynı adla girerseniz, yer imleri ve geçmiş aynı olur ve bir tarayıcı için indirilen uzantılar otomatik olarak diğerinde görünür.

    Yarı saydam düğmelerin görünmesi için ekrana dokunmanız yeterli değil: yakınlaştırmanız veya kaydırmanız gerekiyor, yani. sayfayı kaydırın veya büyütün. Sayfayı hem arayüzün kendisini hem de ses düğmelerini kullanarak hızlı bir şekilde çevirebilirsiniz.

    İşlevler ve yetenekler önceki tarayıcıdakiyle aynıdır, bu yüzden kendimi tekrar etmeyeceğim. Tabii ki, bu tarayıcının kendi

    hoş önemsiz şeyler

    Normal sekmelere ek olarak, sayfalar küçük küçük resimler olarak görüntülenebilir. Bunu yapmak için, alttan ikinci düğmeye tıklamanız yeterlidir.

    Tarayıcı çok çevik ve büyük sayfalara göz atmak için harika. Yakınlaştırma ve kaydırma anında gerçekleşir ve sayfa yayında! Tüm kullanım süresi boyunca, benimle asla çökmedi. Duygular sadece olumlu!

    5 dakikada benzersiz tarayıcı

    Maxthon'un en ilginç önerilerinden biri kendi tarayıcınızı oluşturmaktır! Ve bunun için normal bir tarayıcı indirmenize bile gerek yok. Favori tarayıcınızdan http://custom.maxthon.com/custom/ adresine gitmeniz yeterlidir.

    Gelecekteki tarayıcınız için bir simge (72'ye 72 resim) ve bir arka plan (480'e 800) hazırlamanızı tavsiye ederim.

    Cidden resim aramak için çok tembelseniz ve sadece işlevi denemek istiyorsanız, her yerde standart ayarları seçebilirsiniz ve yalnızca kendi adınızla normal bir Maxthon tarayıcısı alırsınız. Size gönderilecek olan bağlantıyı kullanarak bitmiş eseri indirebilirsiniz. posta kutusu... Play Store'dan olmayan uygulamaların yüklenmesine izin veren öğenin yanındaki ayarlarda önceden işaretlemenizi tavsiye ederim.

    6. UltraLight Tarayıcı

    Minimalist tarzda, gereksiz özellikler içermeyen ultra hafif bir tarayıcı. Bir bağlantıyı hızlı bir şekilde görüntülemek veya örneğin sadece hava durumunu ve döviz kurlarını öğrenmek için idealdir. Yer imleri bırakabilirsiniz. Ancak her zaman yalnızca bir sekme vardır.

    Sayfa tamamen boş, biraz mavi dışında... ne diyeyim... biraz mavi şey.

    Adresi, ayarlar düğmesini görmek ve bir yer imi eklemek için çekmeniz yeterlidir.

    Tarih yok. Teoride, bu "çekme" sadece mavi değil, aynı zamanda metalik veya siyah da olabilir. Ama değiştiremiyorum, güncellemeden sonra düzeleceğini umuyorum.

    hoş önemsiz şeyler

    Hız. Bu, elbette, önemsiz olmaktan uzak olmasına rağmen her zaman hoştur. Sayfaların yüklenmesi yeterince hızlı ve elbette bu hızda iyi bir web sörfü yapmak isterim. Alternatif olarak, makaledeki bağlantılara tıklayarak Wikipedia'ya göz atabilirsiniz. Onun için sayfayı kaydetmenize ve yakındaki makaleleri haritada göstermenize izin veren birçok ayrı program olmasına rağmen (bu işlev sayesinde günde iki kez bir dönüm noktasından geçtiğimi öğrendim ☺).

    Genel olarak, tarayıcı en önemli ve favori gibi davranmaz, ancak "bağlantıyı hızlı bir şekilde görüntüle" işleviyle bir artı ile başa çıkar!

    7 ve 8. Opera Mini ve Opera Mobil

    Birçok kişi en popüler mobil tarayıcının Opera olduğunu bilir. Fakat hangisi? Hangisi daha iyi: Mini mi Mobil mi? Kendi adıma, ikisinin de iyi olduğuna uzun zaman önce karar vermiştim ama Opera Mobile'ı daha sonra indirdim ve Mini'ye daha çok bağlandım. eski telefonumda var Sony Ericsson tek normal tarayıcıydı. İşletim sistemi Symbian gibi görünüyor. Sayfalar GPRS için yeterince hızlı yüklendi, arayüz güzeldi, bilgisayarla entegrasyonu iyiydi. Her şey sadece Android'de daha iyi! Tarayıcı sadece hoş bir dokunmatik kontrol için yapılmıştır. Her iki versiyondan da bahsediyorum ☺.

    Fark ne?

    Her şeyden önce, farklı uygulama simgeleri:

    İkincisi: Opera Mobile daha çok tablet gibi görünüyor...

    Opera Mini'nin hızı birkaç saniye daha iyidir, ancak bu, eldeki kronometre ile karşılaştırıldığında çok belirgin olmasa da ☺.

    Ancak yine de bir fark var: Opera Mini'de Yandex ve Wikipedia hizmetlerindeki arama çubuğundan hemen arama yapabilirsiniz. Bu, tarayıcıya avantajlar sağlar.

    Her iki tarayıcıdaki sekmelerin organizasyonu eşit derecede uygundur, sayılarında herhangi bir sınırlama görmedim.

    Genel olarak, her iki tarayıcı da varsayılan tarayıcı olduğunu başarıyla iddia edebilir, ancak kişisel olarak ikisinden ilk seçeneği tercih ederim.

    9. Bir tarayıcı

    Çok ilginç, güzel tarayıcı. Doğru, Rus dili desteği olmadan ve hızlı erişim için sunulan sitelerin tümü de İngilizce'dir, tarayıcı güzel simgesi, iyi hızı ve kararlılığı ile cezbeder.

    Ama önce ilk şeyler.

    Arayüz

    Eski UC Tarayıcısı gibi, özel bir şey yok. Adres çubuğu ve arama çubuğu ayrı ve biraz eski moda görünüyor. Maxthon'da olduğu gibi hareket ettirebileceğiniz, esnetebileceğiniz, esnetebileceğiniz güzel unsurlar yok. hakkında ciddi şikayetler dış görünüş hayır, ama daha güzel arayüzler var.

    Yer imleri

    Yer imlerinin organizasyonu olağandır: favori sayfanızı yer imlerinde bırakabilir, hızlı erişim paneline veya masaüstüne bir kısayol ekleyebilirsiniz.

    Sekmeler

    Sekmelere ulaşmak için önce sağdaki yarı şeffaf butona tıklamanız ve ardından mücevher gibi bir şekilde açık sayfaların küçük resimlerinin sunulduğu sekmeler ikonuna ulaşmanız gerekiyor. Elbette, özellikle kapatmadıysanız, bunların arasında kesinlikle hızlı bir erişim paneli olacaktır.

    Bağlam menüsü. Tekne tarayıcılarına benzer bire bir:

    özellikler

    Şahsen benim için, yerleşik Naver ☺ arama motorunu kullanarak Çin İnternetinde gezinmek ilginçti.

    10. Firefox

    En popüler tarayıcılardan biri.

    Arayüz güzel ve hareketli. Ama yönetim pek iyi değil. Örneğin, soldaki sekmeler listesini aşağı kaydırırsanız (bunun için küçük bir düğmeye girmeniz gerekir), sadece geri çekerek kapatmak isteyeceksiniz. Ama işe yaramayacak. Tekrar aynı düğmeye girmeniz gerekiyor. Ve sekmelerinizi her zaman görmek istiyorsanız, açık sayfanın yarı görünür olacağı gerçeğiyle anlaşmanız gerekecek.

    Neden kusurlarla başladım? Ben sadece onlar hakkında hızlıca yazmak ve tarayıcının birçok avantajını açıklamak istedim.

    Arayüz

    Daha önce yazdığım gibi, o sadece harika! Örneğin, büyütülmemiş bir sayfayı küçültmeye çalışırsanız, program sadece eylemlerinizi görmezden gelmez. Siz serbest bırakana ve normal şekle dönene kadar sayfa küçülür. Bir önemsememek, ama güzel ☺.

    Hız harika, standart Android tarayıcıyla karşılaştırılamaz.

    En üst düzeyde güvenilirlik. Ben hiç kalkış yapmadım. Web siteleri aynı anda ve tarayıcı kapalıyken bile tüm sekmelere yüklenebilir.

    Programın kullanımıyla ilgili o kadar hoş duygular var ki, açıklamak imkansız, çünkü genel uzun vadeli görüş küçük şeylerden oluşuyor. Ve Firefox böyle bir durumdur. (Tarayıcıların bir başka örneği, kesinlikle bayıldığım Maxthon tarayıcılarıdır ☺.)

    Tüm tarayıcılardaki tüm yer imleri

    Bu nedenle, tavsiyeme uyduysanız ve birkaç tarayıcı indirdiyseniz ve tüm tarayıcıları (veya en azından çoğunu) aktif olarak kullanıyorsanız, yer imlerinizi düzenlemek bir sorun gibi görünecektir. Veya her tarayıcıda zaten onlarca yer işaretiniz var ve favori sitenizi ziyaret etmek istiyorsanız, yer işaretini hangi tarayıcıda bıraktığınızı hatırlamanız gerekecek. Bu benim için de bir sorundu ama bir çözüm buldum. Ve sadece bir tane değil. ☺

    İlk olarak, bağlantı adresini kopyalayıp herhangi bir not defterine kaydedebilirsiniz. En iyi yol Tabii ki Evernote'a.

    Yer imlerini senkronize etmenin dördüncü yolu, Yüz Yer İmi sitesidir.

    Her tarayıcıda sitenin kendisinde bir yer imi bırakmak ve yer imlerini oraya kaydetmek yeterlidir. Ayrıca diğer kişilerin yer imlerini de görüntüleyebilirsiniz ve kendinizinkini görmek istemiyorsanız, onları özel yapın.

    Tasarruf etmenin beşinci yolu, http://zakladki.by sitesi ve bunun için bir android uygulamasıdır. Program çok kullanışlı, yer imlerini mükemmel bir şekilde organize ediyor ve sosyal medya yeteneklerine sahip. Birkaç tıklamayla bilgisayarınızda yer imi bırakmak için siteyi favorilerinize eklemeniz yeterlidir.

    Programdaki çalışmalar da oldukça rahat, sezgisel olarak basit, minimalist bir arayüz. Ve bir güzel ayrıntı daha: önceden oluşturulmuş yer imlerini yalnızca bir bilgisayardan ve yalnızca site aracılığıyla içe aktarmak mümkündür.

    Birincisi tabii ki kendim Metin düzeltici... Kingsoft Office programını kullandım.

    Android için tamamen ücretsiz tek çok işlevli ofis. İşte oluşturabileceğiniz biçimler:

    Kasten bej bir arka plan ve kahverengi harfler koydum. Ancak tüm işlevleri açıklamayacağım, aksi takdirde Mart ayına kadar zorlukla idare edeceğim. Sonrakiye kadar.

    ☺). Bu harika çünkü bu kadar çok şey yaptığınız için ne kadar harika olduğunuzu görebilirsiniz ☺.

    Elbette, yardım edemediniz, ancak (ekran görüntülerini bir büyüteç altında görüntülediyseniz) soldaki küçük simgeleri fark ettiniz. Bu, Yüzen dokunmatik programdır.

    olarak açılmıyor normal uygulama, ancak tüm uygulamaların üstünde kalır. Aslında, bunlar sadece çıkartmalar. Çok sevimli çıkartmalar.

    Son bir şey: 10 tarayıcı tanımladım ama hangisini kendim kullandım? Örneğin, ekran görüntülerini indirmek için. Belirli bir anda hakkında yazdığın kişi? Romantik ama rahatsız edici. Neden Yandex'e 10 kez kaydolun ?! Standart? Hayır, çok sakar. Ve sevgili Maxthon'um elbette yüklüyor ama günde bir fotoğraftan fazla değil ☺. Kullanmış olsaydım, yaz tatiline kadar zor yapardım... Boat Browser Mini'yi kullandım. Evet, muhtemelen bu yüzden incelemesi en uzun ☺. Hız ortalama ve yükler sabit. Hiç fotoğraf eklemeyi reddeden UltraLight'ın aksine ...

    Ben sadece kötü olan her şeyi indirmeye takıntılıyım (hayır, tam tersine ne iyi. Orada herhangi bir dosya paylaşımı olmadan ☺). Ve her şeyi setler halinde sallarım. Kitaplar (okuyucuda zaten 1600), dergiler (biraz daha az), videolar (muhtemelen VK ve YouTube'dan indirmenin binlerce yolunu biliyorsunuzdur) ve İnternet sayfaları (Google tarafından önerilen harika Cep uygulaması sayesinde) Bu konuda muhtemelen ayrı bir inceleme de yazacağım ☺). Bir şekilde notları kaydetmek için uygulama koleksiyonunu tamamlamak istedim ve bunun için 20 uygulama indirdim. Evet, tam olarak 20.

    Sonra İnternet kesildi (operatörüm yuvarlak sayıları seviyor ☺). Bu sefer, tarayıcılar sıcak (zaten sıcak bir tablet tarafından ısıtılmış) elimin altına girdi. Ancak bir inceleme yazmadan önce onları iyi test ettim. Bütün bir ay boyunca bu benim için ilginç bir uğraş oldu ve şimdi buna veda ediyorum ve içtenlikle gözlemlerimi faydalı bulacağınızı umuyorum. Okuduğunuz için teşekkürler.

    Gümüş Yüzüklü Kız

  • Tatlım, ben bir bca öğrencisiyim. Geçen yarıyılda bir proje yapmam gerekiyor. Bu yüzden Android işletim sistemi üzerinde çalışan bir web oluşturmaya karar verdim, ancak bu uygulamaya tamamen katılıyorum. Peki bu konuda bana yardımcı olabilecek var mı? herşeyi kurdum zaten gerekli araçlar jdk, android sdk 3.0, tutulma gibi. Ama şimdi tarayıcı geliştirmeye nereden başlamam gerektiğine dair hiçbir fikrim yok. Bu yüzden lütfen bana yardım edin ... Bu proje için sadece 2 ayım var. Yani 2 ayda mümkün mü değil mi?

    Tarayıcınızı geliştirirken ne demek istediğinize bağlı...

    Sıfırdan bir tarayıcı + işleme motoru geliştirmek çok iştir, ancak WebViewClient'i kullanarak Android WebView tabanlı bir tarayıcıyı kolayca oluşturabilir ve yeni bir tane oluşturabilirsiniz. Kullanıcı arayüzü kullanıcının tarayıcıyla etkileşim şeklini değiştirerek.

    Web görünümü, tarayıcı etkileşimini engellemek için her türlü önleyiciye sahiptir, böylece onu kolayca genişletebilirsiniz. Örneğin, kullanıcının sayfaları çevirmesine (google fastflip gibi), 3D ile denemeler yapmasına, oluşturulan web sayfasını OpenGL uzayında (bir küre tarayıcısında olduğu gibi) eşleştirmesine vb. izin verebilirsiniz.

    Başlangıç ​​noktası olarak, Alexander Kmetek'in bloguna ve Android tarayıcısını mikroformat desteğiyle genişleten Mosambro projesine bir göz atın.

    Kulağa gerçekten büyük bir proje gibi geliyor ve bu yüzden sıfırdan başlayıp kaydedemezsiniz. Tüm bölümleri nasıl uygulamak istediğinize dair bir plan yapmalısınız, sınıf diyagramları yazmalısınız vb. Bilgisayar bilimi okuyorsanız, bunu önceki dönemlerde duymuş olmalısınız.

    İlk önce kendinize bu projenin mümkün olup olmadığını sormalısınız. Yorumlardan da görebileceğiniz gibi, çoğu insan bu zorluğu hafife almamanız gerektiği konusunda hemfikir!

    Bu görevin kapsamını gerçekten anlamanızı öneririm, burada kaynak Android tarayıcısı, size karmaşıklığı hakkında bir fikir veriyor.

    Diğerlerinin WebView'ün bir web sayfasını görüntülemek için ihtiyacınız olan hemen hemen her şeyi sağladığını belirttiği gibi, Android geliştirme deneyimi olanlar için temel bir tarayıcı oluşturmak bir veya iki gün içinde yapılabilirdi. JavaScript ve diğer işlevlerin doğrulanması ve ardından url ve go düğmesi için ana metin kutusunu işaretledikten sonra, hemen hemen ana web tarayıcısı olan birkaç ince ayar vardır.

    Gerçek çalışma, tüm gelişmiş ayarlarda gelir. Büyük adamlarla rekabet eden bir tarayıcı yapmak, bir kişi için birkaç ay içinde biraz zor olabilir, ancak işe yarayan kendi tarayıcınızı yapmak çok mümkündür. Denemek!

    Android'de eksiksiz bir web tarayıcısı oluşturmak için bir WebView kullanıyorsunuz.

    Basit kod bağlama:

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

    Android, kendi web tarayıcınızı oluşturmanıza veya hatta kullanarak kendi tarayıcı klonunuzu oluşturmanıza olanak tanır. Öğenin kendisi WebKit motorunu kullanır ve birçok özelliği ve yöntemi vardır. Kendimizi İnternet'teki sayfaları görüntüleyebileceğimiz bir uygulama oluşturmanın temel bir örneğiyle sınırlayacağız. V en son sürümler Chromium'un motoru kullanılıyor, ancak basit görevler için bunda pek bir fark yok.

    Yeni bir proje oluşturalım Tarayıcım ve işaretleme dosyasındaki kodu hemen değiştirin res / düzen / aktivite_main.xml:

    Şimdi aktivite dosyasını açalım MainActivity.java ve bileşeni bildirin, ayrıca başlatın - JavaScript desteğini etkinleştirin ve indirme sayfasını belirtin.

    Özel Web Görünümü web Görünümü; public void onCreate (Bundle saveInstanceState) (super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); webView = findViewById (R.id.webView); // JavaScript desteğini etkinleştir webView.getSettings (). setJavaScriptEnabled (true) ; // webView.loadUrl yükleme sayfasını belirtin ("http: // site / android");)

    Uygulama interneti kullanacağı için manifest dosyasında internet iznini ayarlamanız gerekiyor.

    Manifest'te aynı yerde, başlığı uygulamamızdan kaldırarak ekranın satırını değiştiriyoruz (kalın harflerle):

    android: tema = "@ stil / Theme.AppCompat.NoActionBar">

    Uygulamaya başlayalım. En basit web sayfası görüntüleyicisine sahibiz, ancak bir dezavantajı var. Herhangi bir bağlantıya tıklarsanız, varsayılan tarayıcınız otomatik olarak başlayacak ve yeni sayfa zaten orada gösterilecektir. Daha doğrusu önceden de öyleydi. Yeni cihazlarda, uygulamayı başlatmak hemen tarayıcıyı açar.

    Çözmek için bu sorun ve programınızdaki bağlantıları açmak için sınıfı geçersiz kılmanız gerekir. WebViewClient ve uygulamamızın bağlantıları yönetmesine izin verin. Kodda iç içe bir sınıf ekleyelim:

    Özel sınıf MyWebViewClient, WebViewClient'i (@TargetApi (Build.VERSION_CODES.N) @Override genel boolean needOverrideUrlLoading (WebView görünümü, WebResourceRequest request) (view.loadUrl (request.getUrl (). ToString ())); return true;) // için eski cihazlar @Override genel boolean shouldOverrideUrlLoading (WebView görünümü, Dize url'si) (view.loadUrl (url); doğru dönüş;))

    Daha sonra yöntemde onCreate () bir örnek tanımla MyWebViewClient... Nesne başlatıldıktan sonra herhangi bir yerde olabilir:

    WebView.setWebViewClient (yeni MyWebViewClient ());

    Şimdi uygulamamız oluşturdu WebViewClient bu, tarayıcıyı başlatmak yerine, seçilen herhangi bir belirtilen URL'nin kapsayıcıya yüklenmesine izin verir. Geçerli ve gerekli URL'yi belirttiğimiz bu işlevsellikten yöntem sorumludur. Geri dönüş değeri NS fırlatmaya ihtiyacımız olmadığını söylüyor üçüncü taraf tarayıcı, ve bağımsız olarak içeriği bağlantıdan indirin. API sürüm 24'te, yöntemin aşırı yüklenmiş bir sürümünü ekledik, bunu aklınızda bulundurun.

    Programı yeniden çalıştırın ve bağlantıların şimdi uygulamanın kendisinde yüklendiğinden emin olun. Ama şimdi başka bir sorun ortaya çıktı. Bir önceki sayfaya geri dönemeyiz. Cihazımızda GERİ butonuna basarsak uygulamamızı kapatmamız yeterli olacaktır. Yeni sorunu çözmek için GERİ düğmesine basmamız gerekiyor. Yeni bir yöntem ekleyin:

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

    Önceki sayfaya navigasyonu neyin desteklediğini kontrol etmemiz gerekiyor. Koşul doğruysa, yöntem çağrılır. geri gitmek (), bu da bizi bir önceki sayfaya bir adım geri götürür. Bu tür birkaç sayfa varsa, sürekli olarak ilk sayfaya dönebiliriz. Bu durumda, yöntem her zaman değeri döndürür. NS... İnternetteki yolculuğumuza başladığımız ilk sayfaya döndüğümüzde, değer geri dönecektir. YANLIŞ ve GERİ düğmesine basma işlemi, uygulama ekranını kapatacak olan sistemin kendisi tarafından üstlenilecektir.

    Uygulamayı tekrar çalıştırın. Artık bağlantıları takip etmenize ve önceki sayfaya dönmenize izin veren kendi web tarayıcınız var. Belgeleri inceledikten sonra, uygulamayı tarayıcınız için başka lezzetli ürünlerle donatabilirsiniz.

    Tarayıcıda sitenize yönlendiren bağlantılardan bazılarını açmanız ve uygulamada yerel bağlantıları açmanız gerekiyorsa, koşulu farklı dönüş değerleriyle kullanın.

    Genel sınıf MyWebViewClient, WebViewClient'i genişletir (@Override genel boolean needOverrideUrlLoading (WebView görünümü, Dize url) (if (Uri.parse (url) .getHost () .. ACTION_VIEW, Uri.parse (url)); view.getContext (). StartActivity (niyet); true döndür;))

    Uygulamadaki tüm yerel bağlantıları açacak, geri kalanı tarayıcıda açacak evrensel bir yöntem (bir satırı değiştirin):

    Genel sınıf MyAppWebViewClient, WebViewClient'i genişletir (@Override public boolean shouldOverrideUrlLoading (WebView görünümü, String url) ( if (Uri.parse (url) .getHost (). uzunluk () == 0)(yanlış döndür;) Amaç amacı = yeni Amaç (Intent.ACTION_VIEW, Uri.parse (url)); view.getContext() startActivity (niyet); true döndür; ))

    Şimdi, kullanıcının standart tarayıcılara bir alternatifi olması için örneği biraz karmaşıklaştıralım.

    Daha açık hale getirmek için, örneği aşağıdaki gibi yeniden yapalım. İki aktivite oluşturun. İkinci aktiviteye geçmek için düğmeyi ilk aktiviteye ve bileşeni ikinci aktiviteye yerleştirin.

    Bildirimde, ikinci aktivite için bir filtre belirledik.

    İkinci aktiviteye gitmek için butonun kodu.

    Public void onClick (Görünüm görünümü) (Niyet amacı = new Intent ("ru.alexanderklimov.Browser"); aim.setData (Uri.parse ("http: // site / android /")); startActivity (intent);)

    Filtreyi belirten kendi amacımızı oluşturduk ve verileri sağladık - site adresi.

    İkinci aktivite şu verileri almalıdır:

    Paket ru.alexanderklimov.test uygulaması; android.net.Uri'yi içe aktar; android.support.v7.app.AppCompatActivity'yi içe aktarın; android.os.Bundle'ı içe aktar; android.webkit.WebView'ü içe aktarın; android.webkit.WebViewClient'i içe aktarın; genel sınıf SecondActivity, AppCompatActivity'yi genişletir (@Override protected void onCreate (Bundle saveInstanceState) (super.onCreate (savedInstanceState); setContentView (R.layout.activity_second); Uri url = getIntent().GetData(); WebView webView = findViewById (R.id.webView); webView.setWebViewClient (yeni Geri Arama ()); webView.loadUrl (url.toString()); ) özel sınıf Geri Arama, WebViewClient'i genişletir (@Override public boolean mustOverrideUrlLoading (WebView görünümü, Dize url) (dönüş (yanlış);)))

    İkinci aktivite için filtrede iki eylem belirledik.

    Bu, herhangi bir etkinliğin (okuma, uygulamalar) aynı şekilde bir mini tarayıcı ile etkinliğinizi tetikleyebileceği anlamına gelir. Herhangi bir eski projeyi stüdyoda ayrı bir pencerede çalıştırın veya yeni bir tane oluşturun ve ona bir buton ekleyin ve butona tıklamak için kullandığımız kodun aynısını yazın.

    İkinci uygulamayı başlatın (ilk uygulama kapatılabilir) ve düğmesine basın. İlk ekrandaki ilk uygulamayı değil, mini tarayıcı ile hemen ikinci etkinliği başlatacaksınız. Böylece, herhangi bir uygulama, etkinliğinizin sınıf adını bilmeden, ancak yalnızca dizeyi kullanarak tarayıcıyı başlatabilir. "ru.alexanderklimov.Tarayıcı" iletildi niyet... Bununla birlikte, tarayıcıdaki etkinliğiniz varsayılan bir kategoriye ve verilere sahip olmalıdır. Hatırlatmama izin ver:

    Dizenizi bir dize sabiti olarak temsil edebilir ve tarayıcınızın tüm potansiyel kullanıcılarına onu kendi başlarına nasıl çalıştırabileceklerini söyleyebilirsiniz. Ancak Android'in zaten böyle hazır bir sabiti var ACTION_VIEW hangi yardım belgelerine göre aşağıdaki gibidir:

    Genel statik final Java.lang.String ACTION_VIEW = "android.intent.action.VIEW";

    İkinci uygulamada buton için kodu yeniden yazalım

    Amaç (android.content.Intent.ACTION_VIEW, Uri.parse ("http: // site / android /")); startActivity (niyet);

    Bu sefer ne olacak? Yazılı iki eylemimiz olduğunu hatırlıyoruz: ve android.intent.action.VIEW... Bu, tarayıcılı ilk uygulamamızın, kullanıcı üzerindeki bazı uygulamalar bu kodu kullandığında da bu komutu tanıması gerektiği anlamına gelir. Öykünücünün böyle en az bir "Tarayıcı" programı vardır ve şimdi ilk uygulamadan ikinci etkinliğimiz buna eklenmiştir. Ekranda iki uygulama seçeneği belirecektir.

    Ve tüm alternatif tarayıcıları kaldırır ve yalnızca kendi programınızı bırakırsanız, başka seçenek kalmaz. Tarayıcınız ana tarayıcı olacaktır. Ve bazı uygulamalar belirtilen şekilde bir web sayfası başlatmak isterse, programınız açılacaktır.

    Küçük bir not. Son satırı bununla değiştirirseniz:

    StartActivity (Intent.createChooser (niyet, "Miyav...");

    Ardından program seçim penceresinde yerine üst çizgi"Birlikte aç" veya yerel çevirisi dizeniz görünecektir. Ama asıl mesele bu değil. Herhangi bir nedenle cihazda tek bir tarayıcı görünmüyorsa, o zaman bu seçenek kod, orijinal sürümden farklı olarak uygulamayı çökertmez. Bu nedenle, güvenilirlik adına önerilen seçeneği kullanın.

    Android tabanlı bir akıllı telefon satın alırken, varsayılan olarak en az bir tarayıcı yüklenecektir. Google Chrome veya üretici tarafından geliştirilen başka bir web tarayıcısı olabilir. Ancak, önceden kurulmuş tarayıcı size uymuyorsa, Play Market'ten başka bir tarayıcı indirebilirsiniz. Cihazınızda benzer birkaç uygulama varsa, varsayılan olarak kullanılacak olan bunlardan birini seçmeniz gerekir. Makalenin geri kalanı, bunu nasıl başarabileceğinize ilişkin seçenekleri açıklayacaktır.

    Android için varsayılan tarayıcı

    Bugün, Android cihazlar için tasarlanmış epeyce web tarayıcısı var. Hepsinin kendine göre avantajları ve dezavantajları var. Ancak farklılıklarına rağmen, bunlardan herhangi birini varsayılan olarak üç farklı şekilde ayarlayabilirsiniz. Her biri makalenin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.

    Yöntem 1: OS parametrelerinin ayarlanması

    Varsayılan tarayıcıyı kurmanın en popüler ve en kolay yolu, işletim sistemini kurmaktır. Ana web tarayıcısını kurmak için şu adımları izleyin:

      1. Ana ekrandan veya uygulama menüsünden akıllı telefonunuzun ayarlarına gidin.


      1. Öğeyi aç "Uygulamalar ve bildirimler".

      1. Satırı bulmak için listenin en altına gidin "Ek ayarlar"... Bazen, grafikte gizlendiği için listede bu bölümü göremeyebilirsiniz. "Henüz".

      1. Ardından, bir seçenek belirleyin "Varsayılan Uygulamalar".

      1. Bir bölüm seçin "Tarayıcı" Varsayılan web tarayıcısını ayarlamak için Ayrıca mesajlar, telefon, ses girişi ve daha fazlası için ayarları özelleştirebilirsiniz.

      1. Tümünü listeleyen bir pencere göründüğünde yüklü tarayıcılar, varsayılan olarak ayarlamak istediğiniz kutunun yanındaki kutuyu işaretleyin.


    1. Artık web tarayıcınızı kullanabilirsiniz. Tüm bağlantılar, anlık mesajlaşma programları, kurulu tarayıcıda açılmaya devam edecek.

    Bu yöntem gerçekten çok basittir ve ayrıca yükleyebilirsiniz. ek ayarlar akıllı telefonunuz.

    Yöntem 2: web tarayıcılarını yapılandırın

    Ayarları kullanarak, standart Google Chrome dışında herhangi bir tarayıcıyı varsayılan olarak ayarlayabilirsiniz. Bu işlemi birkaç işlem yaparak gerçekleştirebilirsiniz. kolay adımlar... Makalede ayrıca, örnek olarak Yandex Browser ve MozillaFirefox'un mobil sürümünü kullanarak, ana web tarayıcısını kurmak için yapılması gereken tüm adımlar daha ayrıntılı olarak açıklanacaktır. Diğer tarayıcılar için prosedür benzer olacaktır.

      1. mobil versiyon tarayıcı, sağ üst veya sağ alt köşede, menüyü açmak için üç dikey noktayı tıklayın.


      1. Sayıyı Bul "Ayarlar" veya "Seçenekler" ve açmak için dokunun.

      1. Önerilen listede öğeyi bulun Varsayılan tarayıcı olarak ayarla ve üzerine tıklayın. Yandex Tarayıcı kullanıyorsanız, bu bölümü adresinde bulabilirsiniz. ana sayfa arama çubuğu menüsünde.

      1. Ardından, tıklamanız gereken ekranda bir sekme görünecektir. "Ayarlar".

      1. Ayarlar sayfasına yönlendirileceksiniz "Varsayılan Uygulama"... Şimdi önceki yöntemin 5, 6 ve 7. paragraflarında açıklanan adımları izleyin.


    Bu seçenek, yukarıda açıklanan yönteme çok benzer. Belirli eylemleri tamamladıktan sonra, yine de "Varsayılan Uygulamalar" bölümüne gideceksiniz. Ama tercih vermek Bu taraftan, web tarayıcınızdan çıkmadan ayarları yapılandırabileceksiniz.

    Yöntem 3: aktif bağlantı

    Bu seçenek, açıklanan ilk yöntemle aynı avantajlara sahiptir. Böyle bir fırsat sağlıyorsa, herhangi bir tarayıcıyı akıllı telefonunuzda ana tarayıcı olarak ayarlayabilirsiniz.

    Bu yöntem yalnızca indirdiğinizde geçerlidir. yeni tarayıcı Play Store'dan veya ana web tarayıcısı telefonunuza daha önce yüklenmemiş.

    1. içeren uygulamaya gidin aktif bağlantı, gitmek için üzerine tıklayın. Eylemlerin listesini içeren bir pencere açılırsa, öğesini seçin. "Açık".
    2. Bağlantıyı açmak için bir web tarayıcısı seçmeniz gereken bir sekme göreceksiniz. Bu, akıllı telefonunuzda ana tarayıcı olarak görmek istediğiniz tarayıcı olmalı ve ardından düğmeyi kontrol edin. "Her zaman".
    3. Seçilen bağlantı, varsayılan olarak yüklenecek olan seçili tarayıcıda açılır.

    Ne yazık ki, Bu method Telegram, VKontakte ve benzerleri gibi uygulamalarla ilgili değildir. Her durumda kullanılamaz. Ancak, yakın zamanda bir web tarayıcısı yüklediyseniz veya varsayılanlar kaldırılmışsa, bu seçenek sizin için mükemmel bir çözümdür.

    Dahili bağlantıları takip etmek için isteğe bağlı web tarayıcı kurulumu

    Bazı uygulamalarda WebView adı verilen yerleşik bir bağlantı okuma sistemi bulunur. Bu programlar için ana tarayıcı olarak GoogleChrome veya yukarıda bahsedilen WebView aracı kullanılır. Gerekirse, bu parametreyi değiştirebilirsiniz.
    Tüm iyi bilinen web tarayıcılarında bu işlev yoktur, bu nedenle daha az popüler olan tarayıcılar arasında arama yapmanız gerekecektir. İzleyicilerde durabilirsiniz farklı üreticiler Android işletim sisteminin tescilli kabuğunda zaten yüklü. Aşağıdaki adımlara geçmeden önce akıllı telefonunuzun aktif bir menüsü olduğundan emin olun. "Geliştiriciler için".

    WebView görüntüleyiciyi değiştirmek için şu adımları izleyin:

      1. Ayarlara gidin ve öğeyi bulun "Sistem" hangi listenin en altındadır.

      1. Ardından, bölümü açın "Geliştiriciler için"... Bunu, eylemler listesinin sonundaki ana ayarlar menüsünde de bulabilirsiniz.

      1. Şimdi grafiği bul "Web Görünümü Hizmeti" ve çalıştırın.

      1. Size hizmetleri görüntülemek için birkaç seçenek sunulursa, onay kutusu alanındaki onay kutusunu işaretleyerek size en uygun olanı seçin.

    1. Tüm bağlantılar artık seçtiğiniz tarayıcıda açılacaktır.

    Bağlantı görüntüleyici, çok nadiren değiştirilir. Ancak akıllı telefonunuz yukarıdaki seçeneği sağlıyorsa bu seçeneği kullanabilirsiniz.

    Bu makale, tarayıcıyı bir Android akıllı telefon için ana olarak ayarlamanın tüm olası yöntemlerini açıklar. Duruma bağlı olarak, her zaman size uygun bir yöntem bulabilirsiniz.