Ouvrir une activité Android webview par un lien web

Résolu/Fermé
Doubleface2022 Messages postés 12 Date d'inscription mardi 13 septembre 2022 Statut Membre Dernière intervention 24 novembre 2022 - 13 sept. 2022 à 01:21
Doubleface2022 Messages postés 12 Date d'inscription mardi 13 septembre 2022 Statut Membre Dernière intervention 24 novembre 2022 - 16 sept. 2022 à 01:27

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 mardi 13 septembre 2022 Statut Membre Dernière intervention 24 novembre 2022 1
13 sept. 2022 à 16:55

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 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 3 895
13 sept. 2022 à 17:08

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 mardi 13 septembre 2022 Statut Membre Dernière intervention 24 novembre 2022 1 > BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024
16 sept. 2022 à 01:27

Merci du lien

0
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 3 895
13 sept. 2022 à 09:10

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 mardi 13 septembre 2022 Statut Membre Dernière intervention 24 novembre 2022 1
Modifié le 13 sept. 2022 à 13:58

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 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 3 895
13 sept. 2022 à 15:42

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