Ouvrir une activité Android webview par un lien web

Résolu
Doubleface2022 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Doubleface2022 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -

Bonsoir à tous, j'ai un problème sous Android et sollicite l'aide de ceux ayant traversé cette étape sous Android webview. J'ai 2 activités créées sous Android, A1 et A2 , A1 possède webview 1 et A2 possède webview 2, j'ai créé dans A1 un shouldoverloading (view view, string URL) qui ouvre l'activité A2 en cliquant sur le lien web affiché à l'intérieur de webview 1 mais ceci ouvre parfaitement A2 sans charger ce lien dans webview 2 de A2 mais ouvre webview 2 vide et charge le lien plutôt toujours dans webview 1 de A1. Comment récupérer mon lien du clic pour charger plutôt dans webview 2 lors de l'ouverture de A2? Merci

A voir également:

3 réponses

Doubleface2022 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1
 

Merci infiniment BunoCS, ça marché, l'union fait la force . Je n'avais pas eu l'idée cette ligne ???? 

Intent1.putExtra(A2.URL_KEY,url1); 

C'est son absence qui chargeait mon A2 dans un ensemble vide de webview 2.

Merci infiniment

1
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 

Bah oui...Il ne faut pas jute "avoir l'idée", il faut aussi lire la doc quand même 

https://developer.android.com/reference/android/content/Intent

1
Doubleface2022 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1 > BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention  
 

Merci du lien

0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 

Hello,

Il faut que tu passes l'URL dans les paramètres de l'Intent. Ensuite, dans A2, tu récupères cette URL et tu load la WebView


0
Doubleface2022 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1
 

Bonjour et merci pour la réaction, j'avais tenté cette possibilité sans résultat attendu. Voici mon code pour être explicite 

Webview1.setwebViewClient(New WebviewClient(){
@Override
Public boolean shouldOverrideUrlLoading(Webview view, String url1){
if(uri.parse(url1).getHost().startsWith("file:///")){
Return false;
}
Intent intent1=New Intent(Intent.Action_View, uri.parse(url1),getApplicationContext(),A2.class);
startActivity(intent1)
view.loardUrl(url1);
Return true;
})
})

Lorsque je lance mon debug , en cliquant sur le lien web chargé dans mon activité A1, l'activité A2 est bien lancé mais sans charger le contenu du lien sur le quel j'ai chargé, comment demander à A2 de récupérer automatiquement mon lien pour charger dans webview 2 ? Je peux avoir comment sera sera mon A2? Je sens qu'il y a un truc qui cloche, mon lien charge toujours webview 1 de A1 et non webview 2 de A2, le grand problème est de savoir comment construire mon A2 avec ce paramètre de url1 qui est dans A1

0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 

Ce que tu fais ici, c'est de lancer l'Activity2 et, tout de suite après, loader la WebView courante avec l'url récupérée.

Ce que tu dois faire, c'est de passer l'url à l'Activity2 via l'Intent, la récupérer dans le onCreate() de l'Activity2 et loader la WebView.

Dans Activity1:

Webview1.setwebViewClient(new WebviewClient(){
  @Override
  public boolean shouldOverrideUrlLoading(Webview view, String url1){
    if(uri.parse(url1).getHost().startsWith("file:///")){
      return false;
    }
    Intent intent1=new Intent(getApplicationContext(), A2.class);
    intent1.putExtra(A2.URL_KEY, url1);
    startActivity(intent1);

    return true;
  })
})

Dans Activity2

public class A2 extends AppCompatActivity {

    public static final String URL_KEY = "url_key";
    private String url;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_a2);

        Bundle extra = getIntent().getExtras();
        if (extra != null){
          url = (String) extra.getString(URL_KEY);
        }

        // blabla

        // création de la webview

        webView.loadUrl(url);
    }

    //...
}
0