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 によるものではありません。Web ビューには一部の URL しか表示されないためです。

ありがとう

4

5 に答える 5

2

このリンクを参照してください。コードでは、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

あなたの活動の代わりにこれを試してください、

main.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

この方法は私のために働いた:

    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 に答える