2

Android WebView で https URL をロードする必要がありますが、白い画面でロードされます。

私も処理public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)しましたが、URLをロードすると白い画面が表示されますが、logcatに例外はありません。

以下は私のコードです

public class MainActivity extends Activity { 
private static final String URL = "https://someurl";

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

    WebView myWebView = (WebView)findViewById(R.id.webview);

    WebSettings settings = myWebView.getSettings();

    settings.setJavaScriptEnabled(true);

    settings.setDomStorageEnabled(true);

    myWebView.loadUrl(URL);



    myWebView.setWebViewClient(new MyWebViewClient());


}


private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (Uri.parse(url).getHost().equals(URL)) {

            return false;
        }
        Activity that handles URLs
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true;
    }

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


        handler.proceed();
    }
}

}

お返事を楽しみにしています。

ありがとう

4

3 に答える 3

1

handler.proceed(); WebView に https URL を読み込ませる必要があります。通常の http URL を試して読み込んで、WebView がまだ白いかどうかを確認してください。

Android には、WebView を白くレンダリングするバグがあります。

WebView でハードウェア アクセラレーションを無効にして、.xml レイアウト リソースの WebView に android:layerType="software" 属性を設定してみてください。

<WebView
    android:id="@+id/webviev"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:layerType="software" />
于 2013-01-12T08:46:24.697 に答える
1

Android 2.2 でサポートされていない特定の SSL 証明書があります。ネイティブ ブラウザでロードしてみてください。ブラウザで動作する場合は、サポートされている可能性があります。サポートされていない場合、少なくとも次の 2 つのオプションがあります。

  1. Web サイトに対する管理者権限があると仮定して SSL 証明書プロバイダーを変更するには
  2. Android 2.2 で SSL が機能しないなどの回避策を実装するには(2.3 のみ)

他の Android バージョンでも SSL がサポートされているかどうかを確認してください。

于 2013-01-12T08:47:40.250 に答える