Menú
Es gratis
registro
casa  /  firmware/ Estamos escribiendo un navegador completo para Android. WebView - crea tu propio navegador Cómo hacer tu propio navegador de aplicaciones android

Estamos escribiendo un navegador completo para Android. WebView - crea tu propio navegador Cómo hacer tu propio navegador de aplicaciones android

Empecé a aprender a programar para Android no hace mucho. Después de que Eclips lanzó mi primer Hello Word, inmediatamente quise más: había muchos planes e ideas grandiosas. Una de esas ideas fue escribir su propio navegador. Creo que muchos programadores novatos tenían ese deseo. Estos son los requisitos que establecí y lo que sucedió al final.

  • El programa debe abrir enlaces. red global, moverse libremente hacia adelante y hacia atrás a través de las páginas;
  • Ser capaz de descargar archivos y volver a subirlos a la red;
  • Crea marcadores y guárdalos;
  • Poder descargar enlaces enviados desde otras aplicaciones;
  • Debe haber un botón de página de inicio, un menú con diferentes configuraciones, etc.

En general, un navegador de bricolaje completo. Traduzcamos esto a código.

El programa está escrito en base a la vista web estándar incluida en Android. Como página de inicio Yo uso Yandex, es cuestión de gustos. La actividad principal será MainActivity.

En primer lugar, establecemos el marcado archivo xml-actividad_principal.xml. Usamos un LinearLayout como contenedor principal: envolvemos ProgressBar en él para mostrar el proceso de carga. A continuación, creamos otro contenedor LinearLayout: envolvemos nuestra Webview y FrameLayout en él (lo usamos para estirar el video reproducido a pantalla completa).

Ver código

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:orientation="vertical" tools:context=".MainActivity">

Comencemos a escribir código en MainActivity

El código completo de MainActivity.

Ver código completo

Importar archivo java.io.; importar android.R.menú; importar android.anotación.SuppressLint; importar android.app.ActionBar; importar android.app.Actividad; importar android.app.AlertDialog; importar android.app.DownloadManager; importar android.app.DownloadManager.Request; importar android.app.KeyguardManager; importar android.app.SearchManager; importar android.content.BroadcastReceiver; importar android.content.Context; importar android.content.DialogInterface; importar android.content.Intent; importar android.content.IntentFilter; importar android.content.SharedPreferences; importar android.net.Uri; importar android.os.Bundle; importar android.os.environment; importar android.os.Parcelable; importar android.os.PowerManager; importar android.preference.PreferenceManager; importar android.proveedor.MediaStore; importar android.util.Log; importar android.view.KeyEvent; importar android.view.Menú; importar android.view.MenuItem; importar android.view.View; importar android.view.WindowManager; importar android.webkit.ConsoleMessage; importar android.webkit.DownloadListener; importar android.webkit.ValueCallback; importar android.webkit.WebBackForwardList; importar android.webkit.WebChromeClient; importar android.webkit.webview; importar android.webkit.WebViewClient; importar android.widget.FrameLayout; importar android.widget.SearchView; importar android.widget.Toast; importar android.graphics.Bitmap; importar android.webkit.URLUtil; clase pública MainActivity extiende la actividad ( // Boolean para el estado de conexión Boolean isInternetPresent = false; ConnectionDetector cd; private WebChromeClient.CustomViewCallback mFullscreenViewCallback; private FrameLayout mFullScreenContainer; private View mFullScreenView; private WebView mWebView; String urload; int cache = 1; SharedPreferences sPref; final Actividad actividad = esto; Uri público imageUri; int final estático privado FILECHOOSER_RESULTCODE = 2888; ValueCallback privado mCargarMensaje; Uri privado mCapturedImageURI = nulo; DownloadManager privado downloadManager; @Override protected void onCreate(Bundle SavedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Crea una clase de detector de conexión de ejemplo: cd = new ConnectionDetector(getApplicationContext()); //Crea un botón home final ActionBar actionBar = getActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); // capturar la intención de que el archivo está cargado y notificar a BroadcastReceiver receiver = new BroadcastReceiver() ( @Override public void onReceive(Context context, Intent intent) ( String action = intent.getAction(); if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) ( loadEnd(); ) ) ); // captura la intención de que el archivo está cargado registerReceiver(receiver, new 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()); class HelloWebViewClient extiende WebViewClient ( @Override public void onPageStarted(WebView view, String url, Bitmap favicon) ( super.onPageStarted(view, url, favicon); findViewById(R.id.progress1).setVisibility(View.VISIBLE); setTitle( url); urload=mWebView.getUrl(); ConnectingToInternet (); ) @Override public boolean shouldOverrideUrlLoading(WebView view, String url) ( view.loadUrl(url); // lanzar enlaces de mercado Uri uri = Uri.parse(url) ; if (uri.getScheme().equals("market")) ( Intent i = new Intent(android.content.Intent.ACTION_VIEW); i.setData(uri); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity ( i); mWebView.canGoBack(); ( mWebView.goBack(); ) ) // ejecutar el correo electrónico si (uri.getScheme().equals("mailto")) ( Intent i = new Intent(android.content.Intent . ACTION_SEND); i.setType("text/html"); i.putExtra(Intent.EXTRA_SUBJECT, "Ingrese asunto"); i.putExtra(Intent.EXTRA_TEXT, "Ingrese texto"); i.putExtra(Intent.EXTRA_EMAIL , nueva cadena (url)); startAct actividad(yo); mWebView.canGoBack(); ( mWebView.goBack(); ) ) // ejecuta el marcador if (uri.getScheme().equals("tel")) ( Intent i = new Intent(android.content.Intent.ACTION_DIAL); i.setData(uri ); startActivity(i); mWebView.canGoBack(); ( mWebView.goBack(); ) ) // iniciar actividad if (uri.getScheme().equals("geo")) ( Intent i = new Intent(android. contenido Intención.ACTION_VIEW); i.setData(uri); iniciarActividad(i); mWebView.canGoBack(); ( mWebView.goBack(); ) ) devuelve verdadero; ) @Override public void onPageFinished(WebView view, String url) ( findViewById(R.id.progress1).setVisibility(View.GONE); ) @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) ( Conectando a Internet (); mWebView.loadUrl("file:///android_asset/error.png"); ) ) mWebView.setWebViewClient(new HelloWebViewClient()); // descargar archivos al dispositivo mWebView.setDownloadListener(new 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("Download Manager"); downloadDialog.setMessage("¿Descargar este archivo a la carpeta de descargas?" + "n" + mimetype + " n" + url); downloadDialog.setPositiveButton("Sí", nueva DialogInterface.OnClickListener() ( public void onClick(DialogInterface dialogInterface, int i) ( doDownload(url, fileName); dialogInterface.dismiss(); ) )); downloadDialog .setNegativeButton("No", new DialogInterface.OnClickListener() ( public void onClick(DialogInterface dialogInterface, int i) ( ) )); downloadDialog.show(); ) )); ) //**************************************** //***** *********************************** //************ *** ******************************* public void ConnectingToInternet ()( //Obtener el estado de la conexión a Internet isInternetPresent = cd .ConnectingToInternet(); //Comprobar el estado de Internet: if (isInternetPresent) ( //Conexión a Internet disponible //do Solicitudes HTTP : ) else ( //Sin conexión a Internet Toast.makeText(this, "¡¡¡Internet caído!!!", Toast.LENGTH_SHORT).show(); ) ) @SuppressLint("SetJavaScriptEnabled") @Override // configuración public void onResume( )( super.onResume(); SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences(this); if (sPref.getBoolean("img", false)) ( mWebView.getSettings().setLoadsImagesAutomatically(false); ) else ( mWebView.getSettings( ).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; ) ) // escribe el marcador public void saveBm(String urlPage1, String urlTitle1) ( Intent Intent = new Intent(this, SaveBmActivity . class); intent.putExtra("urlTitle", urlTitle1); intent.putExtra("urlPage", urlPage1); startActivity(intent); ) public void pref() ( // Configuración de la intención intent = new Intent(this, PreferencesActivity.class); iniciarActividad(intención); ) // borrar caché e historial privado void clCache()( clearCache(actividad); mWebView. clearCache(true); mWebView. clearHistory(); Toast.makeText(this, "Caché e historial borrados", Toast.LENGTH_SHORT).show (); ) @Override protected void onUserLeaveHint() ( super.onUserLeaveHint(); ) @Override public boolean onKeyDown(int keyCode, KeyEvent event) (// botón de retroceso si ((keyCode == KeyEvent.KEYCODE_BACK)) ( mWebView. canGoBack(); ( mWebView.goBack(); ) return true; ) return super.onKeyDown(keyCode, event); ) // captura la url del programa en ejecución private boolean handleIntent(Intent intent) ( String action = intent.getAction (); if (Intent.ACTION_VIEW.equals(action)) ( String url = intent.getDataString(); Toast.makeText(this, url, Toast.LENGTH_SHORT).show(); mWebView.loadUrl(url);// página de carga return true; ) return false; ) // gestor de descargas privado void doDownload(String url,String fileName) ( Uri uriOriginal = Uri.parse(url); try ( Toast.makeText(MainActivity.th es, "Descargando" + nombre de archivo, Toast.LENGTH_LONG).show(); Solicitud de solicitud = new DownloadManager.Request(Uri.parse(url)); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); DownloadManager final dm = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); dm poner en cola (solicitud); ) catch (Excepción e) ( Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show(); Log.e(", "Problema al descargar: " + uriOriginal, e); ) ) // sacar video pantalla completa privado final WebChromeClient mWebChromeClient = nuevo WebChromeClient() ( @Override @SuppressWarnings("obsoleto") public void onShowCustomView(View view, int requestOrientation, CustomViewCallback callback) ( onShowCustomView(view, callback); ) @Override public void onShowCustomView( View vista, devolución de llamada CustomViewCallback) (si (mFullScreenView! = null) ( callback.onCustomViewHidden(); return; ) mFullScreenView = view; mWebView.setVisibility(View.GONE); mFullScreenContainer.setVisibility(Ver.VISIBLE); mFullScreenContainer.addView(ver); mFullscreenViewCallback = devolución de llamada; ) @Override public void onHideCustomView() ( super.onHideCustomView(); if (mFullScreenView == null) ( return; ) mWebView.setVisibility(View.VISIBLE); mFullScreenView.setVisibility(View.GONE); mFullScreenContainer.setVisibility(View. GONE); mFullScreenContainer.removeView(mFullScreenView); mFullscreenViewCallback.onCustomViewHidden(); mFullScreenView = null; ) // *************************** ****************** subir archivos a la red // openFileChooser para Android 3.0+ public void openFileChooser(ValueCallback uploadMsg, String acceptType) ( // Actualice el mensaje mUploadMessage = uploadMsg; pruebe ( // Create AndroidExampleFolder in sdcard File imageStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "AndroidExampleFolder"); if (!imageStorageDir.exists( ) ) ( // Crear AndroidExampleFolder en sdcard imageStorageDir.mkdirs(); ) // Crear la ruta y el nombre del archivo de la imagen capturada por la cámara archivo archivo= nuevo archivo (imageStorageDir + File.separator + "IMG_" + String.valueOf (System.currentTimeMillis()) + ".jpg"); mCapturedImageURI = Uri.fromFile(archivo); // Intención de cámara de captura de imagen Intención final captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI); Intención i = nueva Intención (Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("imagen/*"); // Crear un archivo de selección de intenciones Intent chooserIntent = Intent.createChooser(i, "Selector de imágenes"); // Establezca la intención de selección de archivos de la cámara chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS , new Parcelable(captureIntent)); // Al seleccionar la imagen de omisión del método onactivityresult, llamar al método de actividad startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE); ) catch (Excepción e) ( Toast.makeText(getBaseContext(), "Exception:" + e, Toast.LENGTH_LONG).show(); ) ) // openFileChooser para Android< 3.0 @SuppressWarnings("unused") public void openFileChooser(ValueCallbackuploadMsg) ( openFileChooser(uploadMsg, ""); ) // @SuppressWarnings("no utilizado") 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(String message, int lineNumber, String sourceID) ( //Log.d("androidruntime", "Mostrar mensajes de la consola, Usado para depurar : " + mensaje); ); );// Finalizar setWebChromeClient // Obtener el resultado @SuppressWarnings("no utilizado") datos de objetos privados; @Override protected 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 result = null ; try ( if (resultCode != RESULT_OK) ( result = null; ) else ( // recuperar de la propia variable si la intención es nula result = data == null ? mCapturedImageURI: data.getData(); ) ) catch (Exception e ) ( Toast.makeText(getApplicationContext(), "actividad:" + e, Toast.LENGTH_LONG).show(); ) mUploadMessage.onReceiveValue(resultado); mUploadMessage = null; ) ) //******* * ********************* public void loadEnd () ( Toast.makeText(this, "Archivo cargado en la carpeta de descarga", Toast.LENGTH_SHORT).show() ; ) // menú @Override public bo olean onCreateOptionsMenu(Menú menú) ( // Inflar el menú; esto agrega elementos a la barra de acción si está presente. getMenuInflater().inflate(R.menu.main, menú); devolver verdadero; ) // ************************************************* * ******* @Override public boolean onOptionsItemSelected(MenuItem item) ( switch (item.getItemId()) ( case android.R.id.home:// botón de inicio mWebView.loadUrl("http://yandex . ru"); return true; case R.id.item1:// back mWebView.canGoBack(); ( mWebView.goBack(); ) return true; case R.id.item2: // adelante mWebView.canGoForward() ; ( mWebView.goForward(); ) devuelve verdadero; case R.id.item3: // recargar mWebView.reload(); ( mWebView.reload(); ) devuelve verdadero; case R.id.item4:// borrar caché mWebView .clearCache(true); clearCache(actividad); Toast.makeText(this, "Cache clear", Toast.LENGTH_SHORT).show(); return true; case R.id.item5: mWebView.clearHistory();/ / clear history Toast.makeText(this, "La historia es clara.", Toast.LENGTH_SHORT).show(); return true; case R.id.item6: saveBm(mWebView.getUrl(), mWebView.getTitle());/ / escribir marcador devolver verdadero; case R.id.item7:// barra de marcadores Intento intent1 = new Intent(this , GuardarBmActividad.clase); startActivityForResult(intento1, 1); devolver verdadero; case R.id.item8: // deja de cargar mWebView.stopLoading(); devolver verdadero; case R.id.item9: pref();//la configuración devuelve verdadero; case R.id.item10: // vacío por ahora return true; case R.id.item11:// exit if (cache == 2) ( clCache(); ) finish(); devolver verdadero; predeterminado: devuelve super.onOptionsItemSelected(elemento); ) ) @SuppressWarnings("desaprobación") @Override public void onDestroy() ( super.onDestroy(); mWebView.stopLoading(); mWebView.clearCache(true); mWebView.clearView(); mWebView.freeMemory(); mWebView. destroy(); mWebView = null; ) // borrar caché void clearCache(Context context) ( clearCacheFolder(context.getCacheDir()); ) void clearCacheFolder(final File dir) ( if (dir! = null && dir.isDirectory()) ( try ( for (File child:dir.listFiles())) ( // borre recursivamente los directorios primero if (child. isDirectory()) clearCacheFolder(child); else // luego el hijo archivos mismos .delete(); ) ) catch(Exception e) ( ) ) ) )

El proyecto se puede descargar

¡Buenos días!

Dio la casualidad de que después de escribir una reseña de un navegador y compararlo con otros, quería escribir más sobre cada uno de ellos, porque cada uno de ellos es bueno para algo específico (aunque, al parecer, ¿qué podría ser más específico que navegación web ☺ ). Genial en un navegador interfaz clara, pero tarda mucho en cargar, el otro consume mucha energía y muchas veces se cuelga, pero es conveniente trabajarlo con gran cantidad pestañas, y la tercera es perfecta para visualizar rápidamente el enlace de interés. No tienes que elegir. Descarga lo que quieras. Y en cuanto a la sincronización de marcadores, esto no es un problema, describiré en detalle varias formas de cómo se pueden guardar para todos los navegadores al mismo tiempo. Y si no le gusta la interfaz de ninguno de los navegadores (que, dado su número, es poco probable ☺), cree la suya propia. ¡Solo crea tu propio navegador! Esta función la proporciona el navegador que marqué en la lista como mi favorito.

Para que la descripción de los programas sea útil, escribiré en dos secciones:

  • descripción del programa: cómo guardar y ordenar notas, acelerar la carga, personalizar el aspecto y las funciones deseadas usando temas y configuraciones, y las pequeñas cosas que distinguen el navegador de los demás;
  • experiencia personal de uso: lo que me gusta de este navegador y las deficiencias que encontré.

    Si el primero es útil después de descargar el programa para facilitar la comprensión de los controles, el segundo solo ayudará a decidir si vale la pena descargarlo.

    Atención: Se utilizaron navegadores en la tableta Sony Xperia Tablet S. Otros dispositivos pueden tener diferentes velocidades y funciones. Pero según las observaciones, la interfaz y las funciones siguen siendo las mismas.

    Hay 12 navegadores en mi tableta. Si excluimos el navegador estándar de Android y Google Chrome, quedan exactamente diez:

  • Navegador de la UC;
  • Navegador de barcos (estándar);
  • barco pequeño;
  • Mini Opera;
  • Ópera Móvil;
  • Navegador ultraligero;
  • un navegador;
  • Firefox;
  • Maxton;
  • Maxthon HD (mi favorito).

    1. Navegador UC

    Interfaz

    La apariencia del programa es minimalista y está pensada más para teléfonos inteligentes.

    Por defecto funciona en modo retrato. No se admite la instalación de temas. El número máximo de descargas está limitado a 5... Sin embargo, si realiza la configuración, el navegador puede adaptarse bien a otros dispositivos. ¡El menú es bastante conveniente y fácil de entender!

    Este navegador muestra páginas que a menudo se usan de una manera muy inusual, por ejemplo, Yandex:

    Gracias a esto, la página carga en segundos.

    Pestañas

    Las pestañas no ocupan la parte superior de la pantalla; para ver las páginas abiertas, debe hacer clic en el botón en la parte inferior de la pantalla:

    Marcadores

    Para agregar un marcador, simplemente haga clic en la estrella amarilla (creo que esta estrella es la misma en todos los navegadores ☺).

    Puede optar por guardar cualquier carpeta creada previamente o guardar en la raíz y luego ordenar a su gusto. Es muy bueno que pueda enviar un marcador directamente a su escritorio.

    bagatelas agradables

    ¡La gestión en modo horizontal es muy inusual! Probablemente nunca hiciste esos gestos. Para cerrar la pestaña actual, debe tocar con dos dedos y... simplemente deslizar hacia abajo. Y para abrir una nueva pestaña, viceversa hacia arriba.

    Mi opinión

    En general excelente navegador rápido que es difícil de comparar con cualquier otra cosa. Aunque la primera impresión no siempre es buena, ya que la tuve por los elementos grandes. Pero la interfaz se puede cambiar casi más allá del reconocimiento solo con la ayuda de la configuración. Creo que este navegador ciertamente merece atención y algo de espacio en la memoria de su dispositivo.

    2. Navegador de barcos Mini

    En primer lugar, una descripción general y un pequeño manual de instrucciones.

    aparición del programa

    La interfaz del programa es bastante simple, pero difícilmente puede llamarse intuitiva. Los botones de control para abrir el menú son pequeños para el control táctil, aunque puede acostumbrarse.

    Pero la pantalla no está abarrotada y es conveniente. Hay seis botones, y son para las acciones más populares: guardar marcadores o pasar a la página anterior o siguiente.

    Un menú más avanzado está escondido detrás del botón más a la derecha. En el primer lanzamiento, aparece una pestaña vacía, que luego puede reemplazar con cualquier sitio configurándolo como su página de inicio.

    A diferencia de la mayoría de los navegadores, en cuyas versiones móviles no se admite la instalación de temas, el navegador Boat los tiene: todos los temas se dividen en instalados y en línea. Los primeros se pueden cambiar al menos todos los días, ya están instalados en el navegador, pero no difieren en originalidad. Si desea soluciones más hermosas, los temas se pueden descargar desde Mercado de juego absolutamente libre.

    Pero eso es en teoría. En la práctica, solo pude descargar un tema y luego al principio. Otras veces, simplemente subí página de inicio Mercado de juego.

    Pestañas

    El navegador admite hasta ocho pestañas, lo que suele ser suficiente. A diferencia de Chrome, no ocupan la parte superior de la pantalla, se accede a ellos a través de un pequeño botón en la parte inferior. Las pestañas se presentan como miniaturas de páginas web abiertas y es fácil desplazarse por ellas.

    Marcadores

    Es muy bueno que los marcadores se puedan clasificar en carpetas creadas previamente al agregar o modificar un marcador existente.

    La gestión de marcadores es intuitiva: si desliza el dedo de izquierda a derecha en la lista, puede seleccionar rápidamente varios marcadores,

    de derecha a izquierda: moverlos.

    bagatelas agradables

    Muy característica interesante, que no se encuentra en los navegadores estándar: User Agent.

    Puede convencer al navegador de que está sentado en una computadora o dispositivo doméstico con un sistema operativo diferente.

    A menudo, las versiones móviles de los sitios se reducen para una carga más rápida y una visualización correcta. De forma predeterminada, UA está configurado para Android,

    pero se puede cambiar con un clic. Aquí hay un ejemplo de una página de Google cargada con diferentes agentes:

    Otra función interesante, pero, en mi opinión, un poco inútil: modo nocturno. ¡Simplemente hace que la página sea gris y negra, y algunas entradas e imágenes simplemente desaparecen! Pero esta función se puede utilizar para ajustar el brillo. Para cambiar a la pantalla normal, simplemente presione el botón "modo día".

    Puede tomar una captura de pantalla (screenshot) directamente en el navegador con un par de clics. En este caso, solo se elimina la ventana del programa.

    Experiencia personal

    Velocidad

    La carga de la página, incluso con una conexión lenta, es bastante rápida. En promedio, los sitios web se cargan de 3 a 12 segundos más rápido que en el navegador de Android y de 4 a 6 segundos más rápido que en Chrome. Sin embargo, por ejemplo, UltraLight Browser tiene una velocidad mucho mejor, pero las pestañas no son compatibles allí.

    Al cargar varias páginas al mismo tiempo, por ejemplo en diferentes pestañas, noté una disminución de la velocidad a la mitad y, a veces, ¡incluso Google cargó hasta medio minuto!

    Trabaja con internet lento

    Usé el navegador tanto para Wi-Fi como para 3G. Mi operador tiene una velocidad de conexión bastante baja durante el día, pero en estas condiciones el Boat Mini muestra los mejores resultados de velocidad, por lo que se ha convertido en mi principal asistente en condiciones difíciles ☺ .

    Salidas

    El navegador falla con poca frecuencia: en un mes de uso, solo se bloqueó una vez. La respuesta a la pulsación siempre es impecable, ¡aunque a veces se puede perder el botón!

    Defectos

    Se trata de mérito. Pero, por supuesto, no sin inconvenientes. Escribí sobre uno de ellos desde el principio: pequeños botones de menú. Sin embargo, están ubicados lejos el uno del otro, por lo que es difícil pasarlo por alto. Pero el menú contextual no es tan fácil: puede agregar fácilmente un acceso directo en lugar de guardar la página.

    Otro inconveniente es que si presiona el botón "Inicio" (es decir, el botón de hardware estándar del sistema), luego de regresar al navegador, todas las páginas abiertas se vuelven a cargar. Aunque esto suele ocurrir con poca frecuencia, si se han abierto muchas pestañas, entonces es bastante molesto. Sin embargo, si cambia entre aplicaciones abiertas sin volver al escritorio, esto no sucede.

    Tampoco es alentador que los marcadores no se puedan sincronizar para que, dejando un marcador en un ordenador (en la versión Windows del navegador), puedas encontrarlo en tu tablet y smartphone. Sin embargo, es posible transferir todos los marcadores desde el navegador estándar de Android en cuestión de segundos. Aunque para las personas que usan activamente varios dispositivos, es poco probable que este navegador se convierta en el principal.

    3. Navegador de barcos

    Casi el mismo navegador, solo que sin el prefijo "mini" en el nombre y con ligeras diferencias en la interfaz. Aquí hay algunas capturas de pantalla que demuestran esto:

    La organización de las pestañas es más como Google Chrome que el Barco Mini.

    Además de las pestañas habituales en la parte superior, también hay un administrador de páginas:

    En general, la organización de las páginas está más allá de los elogios: además de las pestañas y el administrador de páginas, puedes controlarlo con gestos.

    Control de gestos

    Dibuja directamente en la página, aunque por defecto no será visible, pero si el gesto se dibuja correctamente, llegarás donde querías.

    Si desea verlo al dibujar un gesto, simplemente cámbielo en la configuración. Es cierto, entonces tendrá constantemente rastros de zoom y desplazamiento y pronto desaparecerá. Hay pocos gestos preinstalados, y son principalmente para administrar pestañas. De los sitios que usan gestos, solo puede abrir Google y Facebook.

    4. Maxtón

    Interfaz

    La primera gran ventaja del programa: interfaz fácil de usar, que en orientación horizontal muy diferente de todos los navegadores con los que he tratado. Para dejar un marcador o ver la barra de direcciones, simplemente arrastre el arco translúcido en la parte superior.

    Pestañas

    Para acceder a las pestañas, debe tocar el pequeño círculo en la esquina inferior y arrastrarlo hacia arriba.

    Para cerrar una página abierta, simplemente arrastre hacia arriba su miniatura.

    Dicho control es muy conveniente cuando no desea saturar la pantalla y, si, por el contrario, desea ver todas las pestañas como de costumbre en la parte superior de la página, puede cambiar la configuración de visualización haciendo clic en "restaurar" , o simplemente gire el dispositivo.

    bagatelas agradables

    La mayor ventaja del navegador es la nubosidad. Eso dicen los desarrolladores. No me importa, pero es bueno pensar que todos mis marcadores, e incluso las descargas, son seguras. Maxthon fue el primer navegador que le permitió sincronizar todos sus dispositivos usando la nube. Ahora, por el contrario, es más difícil encontrar un navegador sin sincronización, y esta no es ahora la diferencia más importante entre el navegador. Aunque a diferencia de otros navegadores que solo guardan marcadores y, en el mejor de los casos, configuraciones, en Maxthon todo está sincronizado. Incluso las descargas se guardan en la nube, solo necesita desmarcar la ventana emergente antes de descargar.

    una cucharada de alquitrán

    Si no fuera por ella, el navegador sería perfecto, pero nada es perfecto... El alquitrán se presenta aquí en forma de cuelgues constantes. Bueno, no tan regular, pero aún así estropea toda la alegría, es especialmente desagradable cuando ingresas a un programa previamente minimizado y descubres que todas las páginas se han cerrado, como el navegador mismo. Se bloquea no solo después de plegarse, sino así, sin razón aparente. Es solo que todas las pestañas abiertas desaparecen, dejando una página que ya ha puesto los dientes de punta. acceso rapido. Pero aún, impresión general agradable desde el navegador, aunque usé lejos de él para escribir esta reseña ☺.

    5. Maxthon HD

    Versión navegador anterior, diseñado específicamente para tabletas.

    La interfaz es ligeramente diferente del navegador normal de Maxthon y aquí hay algunas máscaras para comparar.

    Modo nocturno:

    Agregar un marcador:

    Cuando abre el navegador por primera vez, se le solicita que se registre o inicie sesión con su nombre y seleccione la foto del usuario, que siempre se mostrará en la esquina superior izquierda. Como pueden ver, puse mi loro ☺ .

    El sitio no se trata solo del navegador. Si entiendes inglés, puede ser una gran fuente de artículos interesantes. Desde allí, puede ir a los sitios, redes sociales, tiendas en línea y motores de búsqueda más populares.

    Ambos Maxthons son grandes "amigos" entre sí: se pueden sincronizar en la nube, si ingresa cada uno con el mismo nombre, los marcadores y el historial serán los mismos, y las extensiones descargadas para un navegador aparecerán automáticamente en otro.

    Para que aparezcan los botones translúcidos, no basta con tocar la pantalla: es necesario hacer zoom o desplazarse, es decir, desplazarse o ampliar la página. Puedes desplazarte rápidamente por la página tanto usando la propia interfaz como usando los botones de volumen.

    Las funciones y características son las mismas que en el navegador anterior, por lo que no me repetiré. Aunque, por supuesto, este navegador tiene su propia

    bagatelas agradables

    Además de las pestañas normales, las páginas se pueden mostrar como pequeñas miniaturas. Para hacer esto, simplemente haga clic en el segundo botón desde abajo.

    El navegador es muy ágil y excelente para navegar por páginas grandes. ¡El zoom y el desplazamiento son instantáneos y la página parece estar viva! En todo el tiempo que lo he usado nunca se ha estropeado. ¡Los sentimientos son solo positivos!

    Navegador único en 5 minutos

    ¡Una de las propuestas más interesantes de Maxthon es crear tu propio navegador! Y para esto ni siquiera necesita descargar un navegador normal. Basta con ir a http://custom.maxthon.com/custom/ desde su navegador favorito.

    De antemano, le aconsejo que prepare un ícono para su futuro navegador (imagen 72 por 72) y un fondo (480 por 800).

    Si es demasiado perezoso para buscar imágenes en serio y solo quiere probar la función, puede elegir la configuración estándar en todas partes y obtendrá un navegador Maxthon normal, solo con su propio nombre. Puede descargar la obra de arte terminada desde el enlace que se le enviará en buzón. Le aconsejo que marque la casilla en la configuración junto al elemento que le permite instalar aplicaciones que no son de Play Store.

    6. Navegador ultraligero

    Un navegador ultraligero, de estilo minimalista, sin funciones innecesarias. Ideal para ver rápidamente un enlace o simplemente para consultar el tiempo y los tipos de cambio, por ejemplo. Puedes dejar marcadores. Pero siempre hay una sola pestaña.

    La página está completamente en blanco, a excepción de un poco de azul... qué mejor que llamarlo... una cosita azul.

    Solo necesita tirar de él para ver la dirección, el botón de configuración y agregar un marcador.

    No hay historia. En teoría, esta "cosa" puede ser no solo azul, sino también metálica o negra. Pero no puedo cambiarlo, espero que después de la actualización sea mejor.

    bagatelas agradables

    Velocidad. Esto, por supuesto, siempre es agradable, aunque lejos de ser una bagatela. La carga de la página es bastante rápida y, por supuesto, me gustaría una buena navegación web a esa velocidad. Alternativamente, puede navegar por Wikipedia haciendo clic en los enlaces del artículo. Aunque hay muchos programas separados que le permiten guardar la página y mostrar artículos cercanos en el mapa (gracias a esta función, descubrí que paso por los lugares de interés dos veces al día ☺).

    En general, el navegador no pretende ser el más importante y querido, ¡pero con su función "ver rápidamente el enlace" hace frente a cinco más!

    7 y 8. Opera Mini y Opera Mobile

    Mucha gente sabe que Opera es el navegador móvil más popular. ¿Pero cual? ¿Qué es mejor: Mini o Móvil? Por mi parte, decidí hace mucho tiempo que ambos son buenos, pero descargué Opera Mobile más tarde y me apegué más al Mini. lo tengo en mi antiguo telefono Sony Ericsson, era el único navegador normal. Parece que su sistema operativo era Symbian. Las páginas se cargan lo suficientemente rápido para GPRS, la interfaz es agradable, buena integración con la computadora. ¡Todo es mejor en Android! El navegador se crea simplemente para un control táctil agradable. Ya estoy hablando de ambas versiones ☺ .

    ¿Cuál es la diferencia?

    Bueno, en primer lugar, diferentes iconos de aplicaciones:

    Segundo: Opera Mobile parece más una tableta...

    La velocidad de Opera Mini es un par de segundos mejor, aunque esto no se nota tanto si no lo comparas con un cronómetro en la mano ☺.

    Pero todavía hay una diferencia: en Opera Mini, puede buscar inmediatamente desde la barra de búsqueda en los servicios de Yandex y Wikipedia. Esto agrega valor al navegador.

    La organización de pestañas en ambos navegadores es igualmente conveniente, no noté ninguna restricción en su número.

    En general, ambos navegadores pueden reclamar con éxito el lugar del navegador predeterminado, pero personalmente prefiero la primera opción de los dos.

    9. Un navegador

    Muy interesante, buen navegador. Es cierto que sin el soporte del idioma ruso y los sitios que se ofrecen para un acceso rápido también están todos en inglés, el navegador atrae con su bonito ícono, buena velocidad y estabilidad.

    Pero primero lo primero.

    Interfaz

    Como el antiguo UC Browser, nada especial. La dirección y las líneas de búsqueda están separadas y parece un poco anticuado. No hay elementos tan bonitos que se puedan mover, estirar, estirar como en Maxthon. quejas graves sobre apariencia no, pero hay mejores interfaces.

    Marcadores

    La organización de los marcadores es la habitual: puedes dejar la página que te gusta en marcadores, añadir un acceso directo al panel de acceso rápido o al escritorio.

    Pestañas

    Para acceder a las pestañas, primero debe hacer clic en el botón translúcido a la derecha y luego, a modo de joyero, llegar al icono de pestañas, que muestra miniaturas de las páginas abiertas. Entre ellos, definitivamente habrá un panel de acceso rápido, a menos que, por supuesto, lo haya cerrado específicamente.

    Menú de contexto. Es uno a uno similar a los navegadores de barcos:

    Peculiaridades

    Para mí, personalmente, fue interesante navegar por Internet en China utilizando el motor de búsqueda integrado Naver ☺.

    10.Firefox

    Uno de los navegadores más populares.

    La interfaz es hermosa, animada. Pero la gestión no es muy buena. Por ejemplo, si abre una lista de pestañas a la izquierda (debe presionar un botón pequeño con joyas), querrá cerrarla simplemente tirando de ella hacia atrás. Pero no lo hará. Tienes que volver a pulsar el mismo botón. Y si quieres ver siempre tus pestañas, tendrás que aguantar que la página abierta se vea a medias.

    ¿Por qué comencé con defectos? Solo quería escribir rápidamente sobre ellos y pasar a describir las muchas ventajas del navegador.

    Interfaz

    Como dije, ¡él es genial! Por ejemplo, si intenta reducir una página no ampliada, el programa simplemente no ignorará sus acciones. La página se encogerá hasta que la suelte y luego volverá a la normalidad. Un poco, pero agradable ☺ .

    La velocidad es simplemente notable, sin comparación con el navegador estándar de Android.

    Fiabilidad al más alto nivel. Nunca voló todavía. Los sitios pueden cargarse en todas las pestañas al mismo tiempo e incluso cuando el navegador está cerrado.

    Hay sensaciones tan agradables al usar el programa que es imposible de explicar, porque la opinión general a largo plazo se compone de pequeñas cosas. Y Firefox es uno de esos casos. (Otro caso de navegadores son los navegadores Maxthon, que me encantan ☺).

    Todos los marcadores en todos los navegadores

    Entonces, si siguió mi consejo y descargó varios navegadores y usa activamente todos (o al menos la mayoría), la organización de marcadores parecerá un problema. O ya tiene docenas de marcadores en cada navegador, y si desea ir a su sitio favorito, debe recordar en qué navegador dejó el marcador. Esto también fue un problema para mí, pero encontré una solución. y no uno ☺

    En primer lugar, simplemente puede copiar la dirección del enlace y guardarla en cualquier bloc de notas. La mejor manera Por supuesto, Evernote.

    La cuarta forma de sincronizar marcadores es el sitio "Cien marcadores".

    Es suficiente marcar el sitio una vez en cada navegador y guardar los marcadores allí. Además, puede ver los marcadores de otras personas y, si no desea que se vean los suyos, simplemente hágalos privados.

    La quinta forma de guardar es el sitio http://zakladki.by y una aplicación de Android para ello. El programa es muy conveniente, organiza perfectamente los marcadores y tiene la posibilidad de redes sociales. Para dejar un marcador en su computadora con un par de clics, simplemente agregue el sitio a sus favoritos.

    El trabajo en el programa también es bastante cómodo, interfaz minimalista intuitivamente simple. Y un bonito detalle más: es posible importar marcadores ya creados, aunque solo desde una computadora y solo a través del sitio.

    La primera es, por supuesto, editor de texto. Usé el programa Kingsoft Office.

    La única oficina multifuncional completamente gratis para Android. Estos son los formatos que puede crear:

    En concreto le puse un fondo beige y letras marrones. Pero no describiré toda la funcionalidad, de lo contrario, apenas me las arreglaré hasta marzo. Hasta el próximo.

    ☺ ). Es genial porque puedes ver lo bueno que eres por hacer tanto ☺ .

    Usted, por supuesto, no pudo evitar notar (si miró las capturas de pantalla con una lupa) pequeños íconos a la izquierda. Este es el programa táctil flotante.

    no se abre como aplicación regular, pero permanece al tanto de todas las aplicaciones. Básicamente son solo pegatinas. Pegatinas muy lindas.

    Último: describí 10 navegadores, pero ¿cuál usé? Por ejemplo, para subir capturas de pantalla. ¿Aquel sobre el que escribió en un momento determinado? Romántico pero incómodo. ¿Por qué registrarse en Yandex 10 veces? ¿Estándar? No, demasiado torpe. Y mis cargas favoritas de Maxthon, por supuesto, pero no más de una foto por día ☺ . Si lo hubiera usado, probablemente no habría terminado antes de las vacaciones de verano... Usé el Boat Browser Mini. Sí, probablemente por eso su reseña es la más larga ☺. La velocidad es media y carga constantemente. A diferencia de UltraLight, que se negó a insertar fotos en absoluto...

    Solo estoy obsesionado con descargar todo lo que es malo (no, al contrario, lo que es bueno. Sin compartir archivos ☺). Y descargo todos los kits. Libros (ya 1600 en el lector), revistas (un poco menos), videos (bueno, usted mismo probablemente conozca miles de formas de descargar de VK y YouTube) y páginas de Internet (gracias a la maravillosa aplicación Pocket, recomendada por Google mismo Sobre esto, probablemente escribiré una reseña completa por separado ☺). De alguna manera quería agregar a la colección de aplicaciones para guardar notas, y descargué 20 aplicaciones para esto. Sí, exactamente 20.

    Luego se cortó Internet (a mi operador le gustan los números redondos ☺). Entonces, esta vez, los navegadores estuvieron bajo mi mano caliente (calentada por una tableta que ya estaba caliente). Pero antes de escribir una reseña, los probé bien. Durante todo un mes, esta fue mi ocupación interesante, de la que ahora me despido, y espero sinceramente que mis observaciones le sean útiles. Gracias por leer.

    Chica con anillo de plata

  • Estimados, soy estudiante de bca. Tengo que hacer un proyecto en el último semestre. Así que decidí crear un sitio web que se ejecute en el sistema operativo Android, pero estoy completamente a favor de esta aplicación. Entonces, ¿alguien puede ayudarme con esto? ya instalé todo herramientas necesarias como jdk, android sdk 3.0, eclipse. Pero ahora no tengo idea de dónde debo comenzar el desarrollo del navegador. Así que por favor ayúdenme... Solo tengo 2 meses para este proyecto. Entonces, ¿es posible en 2 meses o no?

    Depende de lo que tengas en mente al diseñar un navegador...

    Diseñar un navegador + motor de renderizado desde cero es mucho trabajo, pero puede construir fácilmente un navegador basado en WebView de Android usando WebViewClient y crear uno nuevo interfaz de usuario, cambiando la forma en que el usuario interactúa con el navegador.

    Webview tiene todo tipo de ganchos para interceptar la interacción del navegador, por lo que puede extenderlo fácilmente. Por ejemplo, puede dejar que el usuario pase páginas (como google fastflip), experimente con 3D mapeando la página web representada en el espacio OpenGL (como el navegador de esfera), etc.

    Como punto de partida, eche un vistazo al blog de Alexander Kmetek y su proyecto Mosambro, que amplía el navegador de Android para incluir compatibilidad con microformatos.

    Suena como un proyecto realmente grande y es por eso que no puedes empezar de cero y escribirlo. Tienes que hacer un plan sobre cómo quieres implementar todas las partes, escribir diagramas de clase, etc. Si estás estudiando informática, debes haber oído hablar de ello en semestres anteriores.

    Primero hay que preguntarse si este proyecto es posible. como puedes ver en los comentarios, la mayoría de la gente está de acuerdo en que no debes subestimar este desafío.

    Realmente sugiero que comprenda el alcance de esta tarea, aquí fuente Navegador de Android, para que os hagáis una idea de su complejidad.

    La creación de un navegador básico se puede hacer en uno o dos días para aquellos con experiencia en desarrollo de Android, al igual que otros han declarado que un WebView proporciona casi todo lo que necesita para mostrar una página web. Hay algunos ajustes para JavaScript y otras características para verificar y luego, después de marcar el campo de texto principal para la URL y el botón Ir, que es prácticamente el navegador web principal.

    El verdadero trabajo viene en todas las configuraciones avanzadas. Construir un navegador que compita con los grandes puede ser un poco difícil para una persona en un par de meses, pero hacer algo propio que funcione es muy posible.¡Tratar!

    Para crear un navegador web completo en Android, utiliza un WebView.

    Enlace de código simple:

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

    Android le permite crear su propia ventana para navegar por la web, o incluso crear su propio clon de navegador usando la extensión . El elemento en sí usa el motor WebKit y tiene muchas propiedades y métodos. Nos limitaremos a un ejemplo básico de creación de una aplicación con la que podemos visualizar páginas en Internet. V Últimas Versiones Se usa el motor de Chromium, pero no hay mucha diferencia en esto para tareas simples.

    Vamos a crear un nuevo proyecto Mi navegador e inmediatamente reemplace el código en el archivo de marcado res/layout/actividad_principal.xml:

    Ahora abramos el archivo de actividad. MainActivity.java y declarar el componente y también inicializarlo: habilite el soporte de JavaScript y especifique la página para cargar.

    Vista web privada vista web; public void onCreate(Bundle SavedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.webView); // habilitar JavaScript webView.getSettings().setJavaScriptEnabled(true) ; // Especifique la página de carga webView.loadUrl("http://website/android"); )

    Dado que la aplicación utilizará Internet, debe configurar el permiso para acceder a Internet en el archivo de manifiesto.

    En el mismo lugar del manifiesto, modificamos la línea de la pantalla eliminando el título de nuestra aplicación (resaltado en negrita):

    android:tema="@estilo/Tema.AppCompat.NoActionBar">

    Comencemos la aplicación. Tenemos a nuestra disposición el visor de páginas web más sencillo, pero con un inconveniente. Si hace clic en cualquier enlace, su navegador predeterminado se iniciará automáticamente y nueva pagina aparecerá allí. Más precisamente, fue antes. En los dispositivos más nuevos, al iniciar la aplicación se abre inmediatamente el navegador.

    Resolver este problema y abrir enlaces en su programa, debe anular la clase WebViewClient y dejar que nuestra aplicación maneje los enlaces. Agreguemos una clase anidada en el código:

    La clase privada MyWebViewClient extiende WebViewClient ( @TargetApi(Build.VERSION_CODES.N) @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) ( view.loadUrl(request.getUrl().toString()); return true; ) // For dispositivos antiguos @Override public boolean shouldOverrideUrlLoading(WebView view, String url) ( view.loadUrl(url); return true; ) )

    Luego en el método enCrear() definir una instancia MiWebViewClient. Puede estar en cualquier lugar después de que el objeto se haya inicializado:

    WebView.setWebViewClient(nuevo MyWebViewClient());

    Ahora en nuestra aplicación creada WebViewClient, que permite que cualquier URL determinada seleccionada se cargue en el propio contenedor en lugar de iniciar un navegador. El método es responsable de esta funcionalidad, en la que especificamos la URL actual y deseada. Valor de retorno cierto dice que no necesitamos correr navegador de terceros y descargue de forma independiente el contenido del enlace. Se agregó una versión sobrecargada del método en la versión 24 de la API, así que tenga esto en cuenta.

    Vuelva a iniciar el programa y verifique que los enlaces ahora estén cargados en la propia aplicación. Pero ahora hay otro problema. No podemos volver a la página anterior. Si pulsamos el botón ATRÁS de nuestro dispositivo, simplemente cerramos nuestra aplicación. Para resolver un nuevo problema, debemos manejar presionando el botón ATRÁS. Agregar un nuevo método:

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

    Necesitamos verificar qué admite la navegación a la página anterior. Si la condición es verdadera, entonces se llama al método regresa(), que nos lleva un paso atrás a la página anterior. Si hay varias páginas de este tipo, podemos volver secuencialmente a la primera página. El método siempre devolverá un valor. cierto. Cuando volvamos a la primera página desde la que comenzamos nuestro viaje en Internet, el valor volverá falso y el procesamiento de presionar el botón ATRÁS será manejado por el propio sistema, que cerrará la pantalla de la aplicación.

    Vuelva a ejecutar la aplicación. Ahora tiene su propio navegador web que le permite seguir enlaces y volver a la página anterior. Después de estudiar la documentación, puede equipar la aplicación con otras delicias para su navegador.

    Si necesita abrir algunos de los enlaces que conducen a su sitio en el navegador y abrir enlaces locales en la aplicación, utilice una condición con diferentes valores de retorno.

    La clase pública MyWebViewClient extiende WebViewClient ( @Override public boolean shouldOverrideUrlLoading(WebView view, String url) ( if(Uri.parse(url).getHost()..ACTION_VIEW, Uri.parse(url)); view.getContext().startActivity (intención); devuelve verdadero; ) )

    Un método universal que abrirá todos los enlaces locales en la aplicación, el resto en el navegador (cambiamos una línea):

    La clase pública MyAppWebViewClient extiende WebViewClient ( @Override public boolean shouldOverrideUrlLoading(WebView view, String url) ( if(Uri.parse(url).getHost().length() == 0)(retorna falso;) Intento Intento = nuevo Intento(Intento.ACTION_VIEW, Uri.parse(url)); ver.getContext().startActivity(intención); devolver verdadero; ) )

    Y ahora compliquemos un poco el ejemplo para que el usuario tenga una alternativa a los navegadores estándar.

    Para hacerlo más claro, reescribamos el ejemplo de la siguiente manera. Crea dos actividades. En la primera actividad, coloque un botón para navegar a la segunda actividad, y en la segunda actividad, coloque el .

    En el manifiesto, prescribimos un filtro para la segunda actividad.

    El código del botón para navegar a la segunda actividad.

    Public void onClick(Ver vista) ( Intención intención = nueva intención("ru.alexanderklimov.Browser"); intent.setData(Uri.parse("http://site/android/")); startActivity(intent); )

    Creamos nuestra propia intención con un filtro y proporcionamos datos: la dirección del sitio.

    La segunda actividad debe recibir los datos:

    Paquete en.alexanderklimov.testapplication; importar android.net.Uri; importar android.support.v7.app.AppCompatActivity; importar android.os.Bundle; importar android.webkit.webview; importar android.webkit.WebViewClient; la clase pública SecondActivity extiende AppCompatActivity ( @Override protected void onCreate(Bundle SavedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Uri url = getIntent().getData(); WebView webView = findViewById(R.id.webView); webView.setWebViewClient (nueva devolución de llamada ()); webView.loadUrl(url.toString()); ) La devolución de llamada de clase privada extiende WebViewClient ( @Override public boolean shouldOverrideUrlLoading (vista de WebView, url de cadena) ( return (falso); ) ) )

    En el filtro de la segunda actividad, especificamos dos acciones.

    Esto significa que cualquier actividad (lectura, aplicaciones) puede desencadenar su actividad con un mini-navegador de la misma manera. Ejecute cualquier proyecto antiguo en el estudio en una ventana separada, o cree uno nuevo y agréguele un botón y escriba el mismo código que usamos para hacer clic en el botón.

    Inicie la segunda aplicación (la primera aplicación se puede cerrar) y haga clic en el botón. No iniciará la primera aplicación con una pantalla de inicio, sino inmediatamente la segunda actividad con un mini-navegador. Por lo tanto, cualquier aplicación puede iniciar un navegador sin saber el nombre de la clase de su actividad, pero usando solo la cadena "en.alexanderklimov.Browser" transmitido a Intención. Sin embargo, la actividad de su navegador debe tener una categoría y datos predeterminados. Déjame recordarte:

    Puede representar su cadena como una constante de cadena y decirles a todos los usuarios potenciales de su navegador cómo pueden ejecutarla por su cuenta. Pero Android ya tiene una constante tan preparada ACCIÓN_VER, que según la ayuda de la documentación es la siguiente:

    Public static final java.lang.String ACTION_VIEW = "android.intent.action.VIEW";

    Reescribamos el código para el botón de la segunda aplicación.

    Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://site/android/")); iniciarActividad(intención);

    Que pasará esta vez? Recordamos que tenemos dos acciones, incluyendo y android.intent.action.VER. Esto significa que nuestra primera aplicación con un navegador también debe reconocer este comando cuando alguna aplicación en el usuario usa este código. Hay al menos un programa de "Navegador" de este tipo en el emulador, y ahora se le ha agregado nuestra segunda actividad de la primera aplicación. Una opción de dos aplicaciones aparecerá en la pantalla.

    Y si elimina todos los navegadores alternativos y deja solo su programa, entonces no habrá otra opción. Su navegador se convertirá en el principal. Y si alguna aplicación desea iniciar una página web de la forma especificada, se abrirá su programa.

    Una pequeña nota. Si reemplaza la última línea con esto:

    StartActivity(Intent.createChooser(intent, "Miau..."));

    Luego, en la ventana de selección de programa en lugar de línea superior"Abrir con" o su traducción local, aparecerá su cadena. Pero esto no es lo principal. Si por alguna razón no hay un navegador en el dispositivo, entonces esta opción El código no hará que la aplicación se bloquee, a diferencia de la versión original. Por lo tanto, use la opción propuesta en aras de la confiabilidad.

    Al comprar un teléfono inteligente basado en Android, se instalará al menos un navegador por defecto. Este puede ser Google Chrome o algún otro navegador web desarrollado por el fabricante. Pero, si el navegador ya instalado no le conviene, puede descargar cualquier otro desde Play Market. Si hay varias aplicaciones de este tipo en su dispositivo, es necesario seleccionar una de ellas, que se utilizará de forma predeterminada. El resto del artículo describirá las opciones de cómo se puede hacer esto.

    Navegador predeterminado para Android

    Hoy en día, hay bastantes navegadores web diseñados para dispositivos Android. Todos ellos tienen sus ventajas y desventajas. Pero, a pesar de sus diferencias, existen tres métodos diferentes para configurar cualquiera de ellos por defecto. Cada uno de ellos se describirá en detalle más adelante en el artículo.

    Método 1: establecer las opciones del sistema operativo

    El método más popular y sencillo para configurar el navegador predeterminado es configurar el sistema operativo. Para instalar un navegador web básico, siga estos pasos:

      1. Vaya a la configuración de su teléfono inteligente desde la pantalla principal o el menú de la aplicación.


      1. Abrir el articulo "Aplicaciones y notificaciones".

      1. Desplácese hasta el final de la lista para encontrar la línea "Ajustes adicionales". A veces, es posible que no vea esta sección en la lista, ya que está oculta en la columna "Más".

      1. A continuación, elige una opción. "Aplicaciones predeterminadas".

      1. Elige una sección "Navegador" para establecer el navegador web predeterminado. También puede configurar los ajustes para mensajes, teléfono, entrada de voz y más.

      1. Cuando aparece una ventana con una lista de todos navegadores instalados, marque la casilla junto a la que desea establecer como predeterminada.


    1. Ahora puede utilizar el navegador web. Todos los enlaces, mensajeros, en el futuro se abrirán en el navegador instalado.

    Este método es realmente muy simple, además, puedes instalar ajustes adicionales tu teléfono inteligente

    Método 2: Configuración de navegadores web

    Usando la configuración, puede configurar cualquier navegador predeterminado que no sea el Google Chrome estándar. Puede realizar este procedimiento haciendo varias pasos faciles. Más adelante en el artículo, utilizando la versión móvil de Yandex Browser y Mozilla Firefox como ejemplo, se describirán con más detalle todos los pasos que deben realizarse para instalar el navegador web principal. Para otros navegadores, el algoritmo de acciones será similar.

      1. abierto version móvil navegador, en la esquina superior o inferior derecha, haga clic en los tres puntos verticales para abrir el menú.


      1. Encuentra el conde "Ajustes" o "Parámetros" y tóquelo para abrirlo.

      1. Encuentra el artículo en la lista "Hacer navegador predeterminado" y haga clic en él. Si usa Yandex Browser, puede encontrar esta sección en página de inicio en el menú de la barra de búsqueda.

      1. A continuación, aparecerá una pestaña en la pantalla en la que debe hacer clic "Ajustes".

      1. Se le llevará a la página de configuración "Aplicación predeterminada". Ahora siga los mismos pasos que se describen en los párrafos 5, 6 y 7 del método anterior.


    Esta opción es muy similar al método descrito anteriormente. Después de realizar ciertas acciones, aún irá a la sección "Aplicaciones predeterminadas". pero prefiriendo este método, puede establecer la configuración sin salir de su navegador web.

    Método 3: enlace activo

    Esta opción tiene las mismas ventajas que el primer método descrito. Puede configurar cualquier navegador como el principal en su teléfono inteligente, si le brinda esa oportunidad.

    Este método es relevante solo cuando ha descargado nuevo navegador desde Play Store, o el navegador web principal no se instaló previamente en su teléfono.

    1. Inicie sesión en una aplicación que tenga enlace activo, haga clic en él para ir. Si aparece una ventana con una lista de acciones, seleccione "Abierto".
    2. Verá una pestaña en la que debe seleccionar un navegador web para abrir el enlace. Este debería ser el navegador que desea ver como el principal en su teléfono inteligente, luego marque el botón "Es siempre".
    3. El enlace seleccionado se abrirá en el navegador marcado, que se configurará de forma predeterminada.

    Desafortunadamente, este método no es relevante para aplicaciones como Telegram, VKontakte y similares. Es posible que no se use en todas las situaciones. Pero, si recientemente instaló un navegador web, o se eliminó la configuración predeterminada, esta opción será ideal para usted.

    Instalación adicional de un navegador web para seguir enlaces internos

    Ciertas aplicaciones tienen un sistema integrado de lectura de enlaces llamado WebView. Para estos programas se utiliza Google Chrome como navegador principal, o la herramienta WebView ya mencionada anteriormente. Si es necesario, puede cambiar esta configuración.
    Los navegadores web más conocidos no tienen esa función, por lo que tendrá que buscar entre navegadores menos populares. Puedes detenerte en los espectadores. diferentes fabricantes, ya instalado en el shell propietario del sistema operativo Android. Antes de continuar con los pasos a continuación, asegúrese de que su teléfono inteligente tenga un menú activo "Para desarrolladores".

    Para reemplazar el visor WebView, haga lo siguiente:

      1. Ve a la configuración y encuentra el artículo. "Sistema", que está al final de la lista.

      1. A continuación, abra la sección "Para desarrolladores". También puede encontrarlo en el menú de configuración principal al final de la lista de acciones.

      1. Ahora encuentra la gráfica "Servicio WebView" y ejecutarlo.

      1. Si se le ofrecen varias opciones para ver los servicios, seleccione la que más le convenga marcando la casilla en el área de casillas de verificación.

    1. Ahora todos los enlaces se abrirán en el navegador que haya elegido.

    Visor de enlaces, muy rara vez reemplazado. Pero puede usar esta opción si su teléfono inteligente tiene la función descrita anteriormente.

    Este artículo ha descrito todos los métodos posibles para configurar el navegador como el principal para un teléfono inteligente basado en Android. Dependiendo de la situación, siempre puede elegir el método que más le convenga.