当前位置:  开发笔记 > Android > 正文

Android WebView,如何处理应用程序中的重定向而不是打开浏览器

如何解决《AndroidWebView,如何处理应用程序中的重定向而不是打开浏览器》经验,为你挑选了4个好方法。

所以现在在我的应用程序中我正在访问的URL有一个重定向,当发生这种情况时,WebView将打开一个新的浏览器,而不是留在我的应用程序中.有没有办法可以更改设置,以便View像正常一样重定向到URL,但是留在我的应用程序而不是打开新的浏览器?

编辑:

我想要重定向URL,我只是不知道如何创建它,所以获取该URL的唯一方法是通过一个导致重定向到我想要的URL.

例如:当您访问此处时:http://www.amazon.com/gp/aw/s/ref=is_box_/k=9780735622777,注意它如何将URL重定向到实际产品.在我的应用程序中,如果我在新的浏览器中打开它,它会很好地做到这一点,但是如果我用WebView将它保存在我的应用程序中,它将显示为正在搜索k = 9780735622777,如下所示:http://www.amazon.com/gp/aw/s/ref=is_s_?k=k%3D9780735622777&x=0&y=0.或者,它将在浏览器中打开视图并显示适当的内容.但是,我想在我的应用程序中保留所有内容.



1> xandy..:

创建WebViewClient,并覆盖shouldOverrideUrlLoading方法.

webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        // do your handling codes here, which url is the requested url
        // probably you need to open that url rather than redirect:
        view.loadUrl(url);
        return false; // then it is not handled by default action
   }
});


请不要复制上面的代码.从回调返回false而不是调用view.loadUrl.调用loadUrl会引入一个微妙的错误,如果你在页面中有任何iframe,并带有自定义方案URL(比如说