Aller au contenu

[RESOLU] kill webview


pyrro

Recommended Posts

bonjour,

voila j'ai une activité principale qui présente un webview et je souhaiterais savoir si il est possible de tuer l'activité pour que peu importe avec quel bouton l'utilisateur sorte du programme ( BACK ou HOME ) , la fois d'après il se retrouve sur la page d'accueil et non pas sur la page sur laquelle il était ?

pour cela j'avais placer se bout de code dans mon activity mais cela ne marche pas puisque quand je quitte avec home cela me ramène a l'endroit quitter :

public boolean onKeyDown(int keyCode, KeyEvent event){

if (keyCode == KeyEvent.KEYCODE_HOME) {

finish();

objetview.clearCache(isFinishing());

}

return super.onKeyDown(keyCode, event);

}

PS: j'ai en plus un probleme avec le cache qui ne se vide pas :P

PS2: objetview c'est mon webview

PS3: j'ai déjà essayer avec system.exit pour tuer à la place du finish mais même résultat

PS4: elle est pas encore sortie

Merci d'avance et désolé pour la blague pourrie et les fautes si il y a mais vu l'heure qu'il est ...

Lien vers le commentaire
Partager sur d’autres sites

Cela ne marche pas :P j'atterris toujours sur la page que j'avais quitter, en faite elle se bloque comme lorsque que l'on quitte le browser avec home elle garde la page en mémoire.

Sinon quelqu'un ne connaitrait pas un autre moyen de procéder que le mien car je ne pense pas que tuer un programme c'est la bonne chose a faire ?

merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

J'ai essayé mais sa ne marche pas non plus, c'est tous mon bloc de code qui ne marche pas j'ai essayé un Log.i , il ne me mais rien dans le debug pourtant il est juste après mon oncreate dans l'activité je ne comprend vraiment rien ....

voici mon code si quelqu'un arrive à m'expliquer :

public class hello extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       //clearCache();
       NavigatorStart();

   }

   private WebView objetview;


   public boolean onKeyDown(int keyCode, KeyEvent event){           
       if (keyCode == KeyEvent.KEYCODE_HOME) {
       Log.i("","home touch");
       String fin = "http://.....................";
       objetview.loadUrl(fin);
       hello.this.finish();
       objetview.clearCache(isFinishing());
       }
      return true;
    } 

   /*
   public void clearCache (){

   	WebIconDatabase.getInstance().removeAllIcons();
   	objetview.clearCache(true);
   }
   */


       public void NavigatorStart() {

           String mapage = "http://...................";

           objetview = (WebView) findViewById(R.id.webkit); 

           objetview.getSettings().setSavePassword(false);
           objetview.getSettings().setSaveFormData(false);
           objetview.getSettings().setJavaScriptEnabled(true);
           objetview.getSettings().setSupportZoom(false);  
           objetview.setWebChromeClient(new MyWebChromeClient());
           objetview.setWebViewClient(new MyWebClient());
           objetview.loadUrl(mapage);

       }

}


class MyWebChromeClient extends WebChromeClient {
       @Override
       public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
           result.confirm();
           return true;
       }
}


  class MyWebClient extends WebViewClient{
     @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
         view.loadUrl(url);
         return true;
    }
}

Lien vers le commentaire
Partager sur d’autres sites

ok le voici :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
<WebView  
   android:id="@+id/webkit"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   />
</LinearLayout>

Lien vers le commentaire
Partager sur d’autres sites

un setUrl ?

je ne peut pas le faire dans le oncreate puisque c'est ma fonction NavigatorStart qui lance le webview, a la limite je peut le faire dans la fonction mais sa revient au même que loadUrl ?

Lien vers le commentaire
Partager sur d’autres sites

Tu avais oublié un onResume. Quand l'application est déjà lancée, elle n'appelle pas le onCreate mais onResume.

public class hello extends Activity{
private String mapage;
private WebView objetview;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       mapage = "http://www.google.fr";
       setContentView(R.layout.main);
       NavigatorStart();

   }
   @Override
protected void onResume() {
	super.onResume();
	objetview.clearView();
	NavigatorStart();
}


   public void NavigatorStart() {

       objetview = (WebView) findViewById(R.id.webkit); 
       objetview.getSettings().setSavePassword(false);
       objetview.getSettings().setSaveFormData(false);
       objetview.getSettings().setJavaScriptEnabled(true);
       objetview.getSettings().setSupportZoom(false);  
       objetview.setWebChromeClient(new MyWebChromeClient());
       objetview.setWebViewClient(new MyWebClient());
       objetview.loadUrl(mapage);

   }

}


class MyWebChromeClient extends WebChromeClient {
       @Override
       public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
           result.confirm();
           return true;
       }
}


  class MyWebClient extends WebViewClient{
     @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
         view.loadUrl(url);
         return true;
    }
}

Lien vers le commentaire
Partager sur d’autres sites

Je voudrais pas abuser mais est ce que tu connaitrait un moyen de supprimer la cache du browser, parce dans la class cache manager du packages android.webkit :

http://developer.android.com/reference/android/webkit/CacheManager.html

y'a pas de fonction CLEAR et de toute façon cette class va être supprimer lors des prochaine MAJ il dise :

Cette méthode est déconseillée. L'accès à la cache HTTP sera supprimée dans une future version
Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...