16

Androidでwebviewアプリケーションを実装しています。https urlを1 回か 2 回読み込もうとすると、アクティビティが終了しますAgian がhttps URLを読み込もうとすると、Web ページが利用できないことが示されます。私が得たものの下の画像を見つけてください。

ここに画像の説明を入力

その URL をもう一度クリックすると、Web サイトが表示されます。

URLをロードするために以下のコードを使用しました。

webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true); 
webView.loadUrl("https://www.facebook.com");
webView.clearView();
webView.measure(100, 100);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);



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

        @SuppressLint("NewApi")
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler,     SslError error) {
            super.onReceivedSslError(view, handler, error);

            // this will ignore the Ssl error and will go forward to your site
            handler.proceed();
            error.getCertificate();
        }
    });

みんな助けてください........

前もって感謝します

4

9 に答える 9

8

manifest.xml にインターネット設定を追加する

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

デバイスでインターネットにアクセスできるかどうかを確認します。

于 2013-08-22T10:31:19.030 に答える
5

次の文字列を削除します。

super.onReceivedSslError(view, handler, error);

そしてこの方法では

public boolean shouldOverrideUrlLoading(WebView view, String url) {

次のように false に戻ります

 return false;

それは私を助けました

于 2015-12-18T08:22:32.667 に答える
2

このオーバーライド メソッドを WebViewClient 実装に追加します。Android SDK 2.2 (API レベル 8) 以降でコンパイルする必要があります。このメソッドは 2.2 (API レベル 8) の公開 SDK に表示されますが、2.1、1.6、および 1.5 を実行しているデバイスでテストしており、これらのデバイスでも動作します (したがって、動作はずっとそこにありました)。

WebView.setWebViewClient(new WebViewClient() {

     public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){

         handler.proceed(); 

     }
    });
于 2014-11-07T08:22:40.763 に答える
1

ここでの 1 つの可能性は、競合状態です。

WebViewClient をセットアップする前にhttps://www.facebook.com/をロードしているため、Facebook から十分に迅速な応答が得られた場合、OnReceivedSslError() の実装が呼び出されない可能性があります。

これは、他の人ではなく一部の人には機能し、ページがリロードされた場合に常に機能する理由を説明します.

また、ページをリロードしようとするのではなく、ページをロードしたい場合は、 shouldOverrideUrlLoading() から false を返す必要があると思います-これは、おそらくタイミングによっては、無限の再帰/クラッシュを引き起こす可能性があります.

于 2014-05-15T17:39:45.390 に答える
-3

マニフェスト ファイルを追加する

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

Web コンテンツにアクセスするときに、インターネット アクセス許可を取得する必要がある場合は、それのみが読み込まれます。

于 2015-04-30T04:58:01.293 に答える
-5

これを試して

 WebView webview = (WebView)findViewById(R.id.webView); 
    Webview.setBackgroundColor(0);
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.loadUrl("https://www.facebook.com");
    webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
于 2013-08-22T10:33:31.213 に答える