Webview没有加载

时间:2013-11-25 05:37:13

标签: android android-webview

我的一个活动中有webview,应该在该页面的一部分内加载而不是打开浏览器。所以我使用了Web视图客户端。

该网址在移动浏览器和我的Chrome中打开。但是当我在应用程序中运行时,它总是显示“网页不可用”。正常“http://www.google.com”正在运作。我的URL是.asp文件,也包含http作为前缀。我不明白为什么会导致这个问题。我google了很多,但无法解决。

我的应用版本是Android 14.我在清单中也有互联网许可。

我的代码段如下:

public static void loadWebView(WebView wView, String url) {
    wView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    wView.getSettings().setBuiltInZoomControls(true);
    wView.getSettings().setJavaScriptEnabled(true);
    wView.getSettings().setSaveFormData(true);
    wView.getSettings().setLoadsImagesAutomatically(true);
    wView.getSettings().setBlockNetworkImage(false);
    wView.getSettings().setDefaultTextEncodingName("UTF-8");
    wView.setVerticalScrollBarEnabled(false);
    wView.setHorizontalScrollBarEnabled(false);
    wView.getSettings().setAllowFileAccess(true);
    wView.getSettings().setPluginState(PluginState.ON);
    wView.setWebChromeClient(new WebChromeClient());

    MyClient wbClient = new MyClient();
    wView.setWebViewClient(wbClient);
    if(url.endsWith(".pdf") || url.endsWith(".PDF")) {
        url = "http://docs.google.com/gview?embedded=true&url=" + url;
    }

    url.replace("http:", "https:");
    wView.loadUrl(url);
}

private static class MyClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl) {
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        progressBar.setVisibility(View.VISIBLE);
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        progressBar.setVisibility(View.INVISIBLE);
    }
}

1 个答案:

答案 0 :(得分:0)

url.replace("http:", "https:");

这一行可能是问题。

我在我的环境中运行你的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView v = (WebView) findViewById(R.id.webView1);
    loadWebView(v,"http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx");
}

尝试按上述方式调用loadWebView() 并仔细检查您是否真的拥有清单文件中的权限,如下所示

<uses-permission android:name="android.permission.INTERNET"/>

希望它有所帮助。