69 votes

Le lien doit être ouvert dans la même vue Web sous Android

Je suis nouveau sur Android et j'essaie d'ouvrir un lien dans la vue Web en utilisant ce code

 WebView myWebView = (WebView) findViewById(R.id.webinfo);
    myWebView.loadUrl("http://oslobokfestival.netteam.no/artical.php?articalid=93");
    myWebView.setBackgroundResource(R.drawable.lbg);
    myWebView.setBackgroundColor(Color.TRANSPARENT);
    myWebView.getSettings().setJavaScriptEnabled(true);

et dans cette page HTML contient des liens et je veux que lorsque l'utilisateur clique, ce lien doit être ouvert dans la même vue Web, à ce stade son ouverture dans le navigateur mobile, veuillez me donner la solution appropriée. Merci.

167voto

momo Points 7728

Vous devez ajouterWebViewClient à votre WebView afin de l'ouvrir dans WebView. Quelque chose comme

 myWebView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        view.loadUrl(request.getUrl().toString());
        return false;
    }
});

14voto

wsewed Points 172

Essayez de supprimer @Overrideet mettez-le après loadurl Ce travail pour moi...

 myWebView.loadUrl("http://someurl.com");
myWebView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) {
        viewx.loadUrl(urlx);
        return false;
    }
});

5voto

Bhavesh Desai Points 568

Pour moi, ses œuvres en remplaçant simplement

shouldOverrideUrlLoading méthodes et

retour super.shouldOverrideUrlLoading(view, request)

qui gérera tous les liens dans le même WebView .

 webview.setWebViewClient(new WebViewClient(){
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
         return super.shouldOverrideUrlLoading(view, request);
      }
});

1voto

Melis Points 33

Remplacez la méthode shouldOverrideUrlLoading de WebViewClient comme ceci :

 myWebView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            view.loadUrl(request.toString());
            return true;
        }
    });

et ajoutez cette balise <uses-permission android:name="android.permission.INTERNET" /> dans votre fichier manifeste Pour accéder à Internet

1voto

Harish Vaishnav Points 11
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView webView = (WebView) findViewById(R.id.webView);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webView.loadUrl("#");
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X