J'ai une application dans laquelle j'ai un WebView
où j'affiche des sites Web. Cela fonctionne, en cliquant sur un lien dans la page Web, vous accédez à la page suivante du site Web dans mon application. Mais lorsque je clique sur le bouton de retour du téléphone, cela m'amène directement dans mon application. Je veux plutôt revenir à la page précédente du site Web. Comment puis-je faire ceci?
Voici l'exemple de code que j'utilise:
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
la source
la source
Réponses:
J'utilise quelque chose comme ça dans mes activités avec WebViews:
Éditer:
Pour que ce code fonctionne, vous devez ajouter un champ au
Activity
contenant la WebView:Initialisez-le dans la
onCreate()
méthode et vous devriez être prêt à partir.la source
finish()
mettrereturn super.onKeyDown(keyCode, event)
else
blocSi vous utilisez Android 2.2 et supérieur (qui est maintenant la plupart des appareils), le code suivant vous donnera ce que vous voulez.
la source
android:noHistory="true"
attribut dans le que<activity>
vous voulez, dans le AndroidManifest.xmlreturn;
? C'est le cas dans le guide de formation .C'est ma solution. Il fonctionne également dans Fragment.
la source
Référence complète pour le bouton suivant et la barre de progression: remettre et bouton suivant dans la vue Web
Si vous souhaitez revenir à la dernière page lorsque vous cliquez sur le bouton de retour du téléphone, utilisez ceci:
Vous pouvez également créer un bouton de retour personnalisé comme celui-ci:
la source
La mise au point doit également être vérifiée sur BackPressed
la source
Pourquoi ne pas utiliser
onBackPressed()
?la source
voici un code avec confirmation de sortie:
la source
la source
En kotlin:
webView - id du composant webview en xml, si vous utilisez une référence synthétique.
la source
La première réponse de FoamyGuy est correcte mais j'ai quelques ajouts; une mauvaise réputation ne me permet pas de faire des commentaires. Si, pour certaines raisons, votre page ne se charge pas, assurez-vous de définir un indicateur pour prendre note de l'échec, puis vérifiez-le sur la substitution onBackPressed. Sinon, votre canGoBack () sera toujours exécuté sans se diriger vers l'activité de retour réelle si elle était là:
la source
Vous devez les bibliothèques suivantes de votre classe gérer le onBackKeyPressed. canGoBack () vérifie si la vue Web peut faire référence à la page précédente. Si c'est possible, utilisez la fonction goBack () pour référencer la page précédente (revenir en arrière).
la source
Voici la solution Kotlin:
la source
Voie Kotlin officielle:
https://developer.android.com/guide/webapps/webview.html#NavigatingHistory
la source
Si quelqu'un veut gérer backPressed pour une webView à l'intérieur d'un fragment , il peut utiliser le code ci-dessous.
Copiez le code ci-dessous dans votre
Activity
classe (qui contient un fragmentYourFragmmentName
)}
Copiez ce code dans le fragment
YourFragmentName
Remarques
Activity
doit être remplacé par la classe d’activité réelle que vous utilisez.YourFragmentName
devrait être remplacé par le nom de votre Fragment.webView
enYourFragmentName
sorte qu'il est accessible à partir de la fonction.la source
Vous pouvez essayer ceci pour la visualisation Web dans un fragment:
la source
utilisez ce code pour revenir sur la page et lorsque la dernière page est venue, alors mettez hors service
la source
Webview dans l'activité, le code ci-dessous a fonctionné pour moi, terminer l'activité après avoir chargé l'URL dans webview.in onbackpressed, aller à l'activité précédente
la source