Partage
  • Partager sur Facebook
  • Partager sur Twitter

Android WebView

Sujet résolu
    18 avril 2016 à 14:44:40

    Bonjour à tous,

    En tant que grand débutant, j'essaie d'afficher une url dans une webView, mon problème est que mon app ouvre l'url dans le navigateur.

    String url="http://www.example.com/";
    
            WebView view=(WebView) this.findViewById(R.id.webView);
            view.getSettings().setJavaScriptEnabled(true);;
            view.loadUrl(url);

    Quelqu'un à une idée ?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2016 à 15:10:06

      Salut, 

      Alors, il faut que tu surcharges le webViewClient, comme ceci :

          WebView webView = (WebView) findViewById(R.id.webview);
              webView.setWebViewClient(new WebViewClient() {
                  @Override
                  public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
                      view.loadUrl(url);
                      return true;
                  }
              });
              webView.loadUrl("http://www.google.com");
              webView.getSettings().setJavaScriptEnabled(true);
              webView.getSettings().setDomStorageEnabled(true);

      Au passage, je ne sais pas si c'est fait mais comme tu utilises internet n'oublie pas d'ajouter les permissions dans ton manifest pour accéder à internet comme ceci :

      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="...">
      
          <uses-permission android:name="android.permission.INTERNET" />
      
          <application ...

      Et ça devrait être tout bon :)


      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2016 à 15:15:45

        Et c'est tout bon !

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 avril 2016 à 15:18:56

          J'allais mettre un code semblable en même temps, mais je vais me raviser. Tu as été plus rapide ;)

          J'aimerais préciser toutefois que le comportement par défaut d'un webview est de lancer une application qui permet de gérer l'URL, tel qu'expliqué dans la documentation officielle :

          When the user clicks a link from a web page in your WebView, the default behavior is for Android to launch an application that handles URLs. Usually, the default web browser opens and loads the destination URL. However, you can override this behavior for your WebView, so links open within your WebView. You can then allow the user to navigate backward and forward through their web page history that's maintained by your WebView.

          To open links clicked by the user, simply provide a WebViewClient for your WebView, usingsetWebViewClient(). For example:

          WebView myWebView =(WebView) findViewById(R.id.webview);
          myWebView
          .setWebViewClient(newWebViewClient());

          That's it. Now all links the user clicks load in your WebView.

          -
          Edité par Anonyme 18 avril 2016 à 15:19:37

          • Partager sur Facebook
          • Partager sur Twitter
            12 novembre 2017 à 20:02:40

            en kotlin,,,

            webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
                    view.loadUrl(request.getUrl().toString())
            return true
            }
            }
            webView.loadUrl("http://www.google.com")
            webView.settings.javaScriptEnabled = true
            webView.settings.domStorageEnabled = true



            • Partager sur Facebook
            • Partager sur Twitter

            Android WebView

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown