Android webview lance un navigateur lorsque vous appelez loadurl

j'ai créé un Activity qui a un titre et une vue web dans un LinearLayout . Dans la méthode onResume() il appelle webView.loadUrl(url) . Le problème est que l'activité montre d'abord le titre avec le reste de l'écran vide, puis le navigateur de périphérique est lancé avec la page pour L'URL. Ce que je veux voir est la page affichée dans le WebView sous le titre. Quel pourrait être le problème?

Modifier : Ok, fait un peu de recherche et de j'ai trouvé celui-ci:

un clic sur les URLs ouvre le navigateur par défaut

il pointe vers le WebView tutorial ici .

il suffit d'implémenter le client web et de le configurer.

383
demandé sur Community 2011-10-13 00:51:01

8 réponses

répondant à ma question sur la base des suggestions de Maudicus et Hit.

consultez le tutoriel WebView ici . Il suffit de mettre en œuvre le client web et de le définir avant de charger . La manière la plus simple est:

myWebView.setWebViewClient(new WebViewClient());

pour un traitement plus avancé du contenu web, considérez le ChromeClient.

665
répondu Ray 2016-06-28 15:21:41

utilisez ceci:

lWebView.setWebViewClient(new WebViewClient());
90
répondu oops.objective 2016-05-06 13:48:27

utiliser comme ceci:

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

    WebView myWebView = (WebView) findViewById(R.id.webView1);
    myWebView.setWebViewClient(new WebViewClient());
    myWebView.loadUrl("https://google.com");
}
45
répondu Vinod Joshi 2014-08-28 09:02:40

Faites votre activité comme ceci.

public class MainActivity extends Activity {
WebView browser;

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

    // find the WebView by name in the main.xml of step 2
    browser=(WebView)findViewById(R.id.wvwMain);

    // Enable javascript
    browser.getSettings().setJavaScriptEnabled(true);  

    // Set WebView client
    browser.setWebChromeClient(new WebChromeClient());

    browser.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
                }
        });
     // Load the webpage
    browser.loadUrl("http://google.com/");
   }
}
18
répondu Abduhafiz 2016-01-21 12:41:57

je faisais face au même problème et j'ai trouvé la solution la Documentation officielle D'Android à propos de WebView

voici ma méthode onCreateView() et ici j'ai utilisé deux méthodes pour ouvrir les urls



Méthode 1 ouvre url dans le navigateur et



la méthode 2 ouvre l'url dans votre WebView désiré.

et j'utilise la méthode 2 pour mon Application et ceci est mon code:

public class MainActivity extends Activity {
   private WebView myWebView;

     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

      View rootView = inflater.inflate(R.layout.fragment_webpage_detail, container, false);

      // Show the dummy content as text in a TextView.
      if (mItem != null) {

         /* Method : 1
          This following line is working fine BUT when we click the menu item then it opens the URL in BROWSER not in WebView */
         //((WebView)   rootView.findViewById(R.id.detail_area)).loadUrl(mItem.url);

        // Method : 2
        myWebView = (WebView) rootView.findViewById(R.id.detail_area); // get your WebView form your xml file
        myWebView.setWebViewClient(new WebViewClient()); // set the WebViewClient
        myWebView.loadUrl(mItem.url); // Load your desired url
    }

    return rootView;
}                                                                                               }
14
répondu Arsh Kaushal 2016-07-04 05:24:42

simplement répondre que vous pouvez utiliser comme ceci

public class MainActivity extends AppCompatActivity {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         WebView webView = new WebView(this);
         setContentView(webView);
         webView.setWebViewClient(new WebViewClient());
         webView.loadUrl("http://www.google.com");
   }
}
6
répondu 2016-06-07 14:48:35

essayez ce code...

private void startWebView(String url) {

    //Create new webview Client to show progress dialog
    //When opening a url or click on link

    webView.setWebViewClient(new WebViewClient() {      
        ProgressDialog progressDialog;

        //If you will not use this method url links are opeen in new brower not in webview
        public boolean shouldOverrideUrlLoading(WebView view, String url) {              
            view.loadUrl(url);
            return true;
        }

        //Show loader on url load
        public void onLoadResource (final WebView view, String url) {
            if (progressDialog == null) {
                // in standard case YourActivity.this
                progressDialog = new ProgressDialog(view.getContext());
                progressDialog.setMessage("Loading...");
                progressDialog.show();
            }
        }
        public void onPageFinished(WebView view, String url) {
            try{
            if (progressDialog.isShowing()) {
                progressDialog.dismiss();
                progressDialog = null;
            }
            }catch(Exception exception){
                exception.printStackTrace();
            }
        }

    }); 

     // Javascript inabled on webview  
    webView.getSettings().setJavaScriptEnabled(true); 

    // Other webview options
    /*
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webView.setScrollbarFadingEnabled(false);
    webView.getSettings().setBuiltInZoomControls(true);
    */

    /*
     String summary = "<html><body>You scored <b>192</b> points.</body></html>";
     webview.loadData(summary, "text/html", null); 
     */

    //Load url in webview
    webView.loadUrl(url);
}
5
répondu code_geek 2017-01-13 03:34:49

ce travail parfait dans un Samsung 7 Merci à Abdukhafiz pour l'affichage ici

public class MainActivity extends Activity {
    WebView browser;

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

        // find the WebView by name in the main.xml of step 2
        browser=(WebView)findViewById(R.id.WebView);

        // Enable javascript
        browser.getSettings().setJavaScriptEnabled(true);

        // Set WebView client
        browser.setWebChromeClient(new WebChromeClient());

        browser.setWebViewClient(new WebViewClient() {

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        // Load the webpage
        browser.loadUrl("http://www.google.com");
    }
}
4
répondu Gilbert Rodriguez 2017-10-27 21:02:12