Tengo una aplicación en la que tengo un lugar WebView
donde mostrar algunos sitios web. Funciona, hacer clic en un enlace en la página web va a la página siguiente en el sitio web dentro de mi aplicación. Pero cuando hago clic en el botón Atrás del teléfono, me lleva directamente a mi aplicación. En cambio, quiero volver a la página anterior del sitio web. ¿Cómo puedo hacer esto?
Aquí está el ejemplo de código que estoy usando:
public class Webdisplay extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.webdisplay);
getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
Window.PROGRESS_VISIBILITY_ON);
Toast loadingmess = Toast.makeText(this,
"Cargando El Diario de Hoy", Toast.LENGTH_SHORT);
loadingmess.show();
WebView myWebView;
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.elsalvador.com");
myWebView.setWebViewClient(new WebViewClient());
myWebView.setInitialScale(1);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setUseWideViewPort(true);
final Activity MyActivity = this;
myWebView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
MyActivity.setTitle("Loading...");
MyActivity.setProgress(progress * 100);
if(progress == 100)
MyActivity.setTitle(R.string.app_name);
}
});
}
}
android
android-webview
zvzej
fuente
fuente
Respuestas:
Utilizo algo como esto en mis actividades con WebViews:
Editar:
Para que este código funcione, debe agregar un campo al que
Activity
contiene WebView:Inicialícelo en el
onCreate()
método y debería estar listo para comenzar.fuente
finish()
ponerreturn super.onKeyDown(keyCode, event)
else
bloqueSi usa Android 2.2 y superior (que es la mayoría de los dispositivos ahora), el siguiente código le dará lo que desea.
fuente
android:noHistory="true"
atributo<activity>
que desee, en AndroidManifest.xmlreturn;
? Lo hace en la guía de entrenamiento .Esta es mi solución Funciona también en Fragment.
fuente
Referencia completa para el botón siguiente y la barra de progreso: volver a colocar el botón siguiente en la vista web
Si desea ir a la página de retroceso cuando hace clic en el botón de retroceso del teléfono, use esto:
También puede crear un botón de retroceso personalizado como este:
fuente
El enfoque también debe ser verificado en onBackPressed
fuente
¿Por qué no usar
onBackPressed()
?fuente
Aquí hay un código con confirmación de salida:
fuente
fuente
En kotlin:
webView: identificación del componente webview en xml, si se usa una referencia sintética.
fuente
La primera respuesta de FoamyGuy es correcta pero tengo algunas adiciones; Las bajas reputaciones no me permiten hacer comentarios. Si por alguna razón su página no se carga, asegúrese de establecer una marca para tomar nota de la falla y luego verifíquela en la anulación onBackPressed. De lo contrario, su canGoBack () se ejecutará para siempre sin dirigirse a la actividad de respaldo real si estaba allí:
fuente
Las siguientes bibliotecas de su clase deben manejar onBackKeyPressed. canGoBack () comprueba si la vista web puede hacer referencia a la página anterior. Si es posible, utilice la función goBack () para hacer referencia a la página anterior (volver).
fuente
Aquí está la solución de Kotlin:
fuente
Camino oficial de Kotlin:
https://developer.android.com/guide/webapps/webview.html#NavigatingHistory
fuente
Si alguien quiere manejar backPressed para un webView dentro de un fragmento , entonces puede usar el siguiente código.
Copie el siguiente código en su
Activity
clase (que contiene un fragmentoYourFragmmentName
)}
Copia este código en el fragmento
YourFragmentName
Notas
Activity
debe reemplazarse con la clase de actividad real que está utilizando.YourFragmentName
debe reemplazarse con el nombre de su Fragmento.webView
enYourFragmentName
forma que se puede acceder desde dentro de la función.fuente
Puede probar esto para webview en un fragmento:
fuente
use este código para volver a la página y cuando llegue la última página, salga de la actividad
fuente
Webview en actividad, el siguiente código funcionó para mí, finalice la actividad después de cargar la URL en webview.in presionada de nuevo, vaya a la actividad anterior
fuente