17

有谁知道为什么webview显示白页?这是代码

webView = (WebView) this.findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(THE_URL);
webView.setWebViewClient(new WebViewClient());

这个函数也被称为:

@Override
public void onPageFinished(WebView view, String url) {
}

我在那里错过了什么吗?当然,错误不是来自 XML,因为 webview 只是不显示某些 URL。

谢谢

4

5 回答 5

8

对于仍然遇到此问题的任何人,如果通过 https 的安全连接失败,WebViewClient 似乎不会警告您。这可能是由于您要连接的服务器上的 SSL 错误造成的。

如果服务器允许,您可以尝试使用 http。

于 2017-01-28T00:45:16.647 回答
2

请参阅此链接。在您的代码中,您同时创建了两个 webview 客户端。

mwebview=(WebView)findViewById(R.id.webview);
mwebview.getSettings().setJavaScriptEnabled(true);
mwebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mwebview.loadUrl(webUrl);
mwebview.setWebChromeClient(new WebChromeClient() );
于 2012-04-30T08:36:28.670 回答
1

而不是你的活动试试这个,

主要的.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<Linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

   <Textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="This is the demo of WebView Client" android:textsize="20sp" android:gravity="center_horizontal">
   </Textview>

   <Webview android:id="@+id/webview01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="1">
   </Webview>

   <Imageview android:src="@drawable/ic_launcher" android:layout_height="wrap_content" android:layout_width="fill_parent">      

</Imageview></Linearlayout>

WebViewClientDemoActivity.java

   import android.app.Activity;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    /*
     * Demo of creating an application to open any URL inside the application and clicking on any link from that URl
    should not open Native browser but  that URL should open in the same screen.
     */
    public class WebViewClientDemoActivity extends Activity {
        /** Called when the activity is first created. */

        WebView web;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            web = (WebView) findViewById(R.id.webview01);
            web.setWebViewClient(new myWebClient());
            web.getSettings().setJavaScriptEnabled(true);
            web.loadUrl("http://www.google.com");
        }

        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;

            }
        }

        // To handle "Back" key press event for WebView to go back to previous screen.
       @Override
       public boolean onKeyDown(int keyCode, KeyEvent event)
      {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
            web.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
       }
    }

在您的manifest.xml中使用这些权限

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
于 2012-04-30T08:55:50.953 回答
1

调整您的容器视图背景,然后设置

webView.setBackgroundColor(Color.TRANSPARENT);
于 2019-04-19T08:11:49.127 回答
1

这种方式对我有用:

    mWebView = (WebView) findViewById(R.id.myWebView);
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    mWebView.setVerticalScrollBarEnabled(true);
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.loadUrl(URL);
于 2020-07-07T12:19:30.987 回答