无法在webview中打开网址

时间:2015-04-16 11:48:42

标签: android webview

当我加载网址时,它会显示一个选择浏览器的窗口。对于前者 - 如果我想打开" http://www.facebook.com/"然后它显示我选择chrome或默认浏览器的窗口。我无法理解为什么会这样。

实际上在下面的代码中如果我成功从服务器获取了网址,那么我隐藏了一个抱歉的图像并显示webview。否则我会显示webview并隐藏抱歉图像。

webView = (WebView) findViewById(R.id.webView);
            webView.setVisibility(View.VISIBLE);
            ImageView img = (ImageView) findViewById(R.id.image);
            img.setVisibility(View.GONE);
            webView.setInitialScale(1);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.getSettings().setLoadWithOverviewMode(true);
            webView.getSettings().setUseWideViewPort(true);
            webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
            webView.setScrollbarFadingEnabled(false);
            webView.loadUrl("http://www.facebook.com/");

3 个答案:

答案 0 :(得分:3)

尝试添加此行

webView.setWebViewClient(new WebViewClient());

答案 1 :(得分:1)

像这样添加WebViewClient

public class myWebClient extends WebViewClient
{
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub

        view.loadUrl(url);
        return true;

    }
}

您应覆盖您的shouldOverrideUrlLoading()方法。

在您的UI活动中添加此行

 web.setWebViewClient(new myWebClient());

它将解决您的问题。希望它有所帮助!

答案 2 :(得分:0)

首先,用http替换https,然后按顺序执行此操作,首先需要创建一个扩展WebViewClient类的新java类,并覆盖{{1像这样的方法:

onPageFinished

其次,只需将其添加到WebView:

 public class CustomWebViewClient extends WebViewClient
{      
     @Override
    public void onPageFinished(WebView view, String url) {

        //https://www.facebook.com/dialog/permissions.request  
        //actually  works for me, but I put the URL you say is coming up    
        //blank in there instead, whatever works for you:
        if(url.startsWith("https://www.facebook.com/dialog/oauth")){
           String redirectUrl = "http://www.yourdomain.com/MyApp/";
            view.loadUrl(redirectUrl);
           return;
       }
        super.onPageFinished(view, url);
    }
}