2017/12/19
事の始まりは、Twitterでログイン機能を実装していたときのこと。。。
Twitterの認証ページにアクセスしようにも、
真っ白けでローディングが止まる!
普通にブラウザでアクセスすると、SSLエラーが表示されアクセスできました。
そこでSSLエラーが関係しているのではと思って調べたところ、どうやらエラーイベントを無視する動作を追加しないといけないようです。
さらに、2.2以下ではそのためのメゾットが用意されていないため、2.2のWebViewClient.javaとSslError.javaを引っ張ってこなければいけません。
その手順がなかなかたどり着くまで大変だったのでまとめておきます。
また、この記事は下のサイトを参考にしました。ありがとうございます。
まこちの覚え書き Android2.2未満のWebViewでのSSL通信の問題
あとは手順通りにやるだけ・・・なのですが。。。
まずソースコードがGitからダウンロードしろと言われます。
別に二つのファイルが欲しいだけなんだよ・・・と思い探すと・・・
Androidソースコード検索サービス – Developer Collaboration Project
ファイルごとに検索してソースコードがDLできます!!
今回は下のファイルをダウンロード・・・
http://tools.oesf.biz/android-2.2_r1.1/xref/frameworks/base/core/java/android/net/http/SslError.java
http://tools.oesf.biz/android-2.2_r1.1/xref/frameworks/base/core/java/android/webkit/WebViewClient.java
上のページを開いて、Downloadボタンをおして適当な場所に保存します。
そうしたら、eclipseを開き、srcフォルダにインポートします。
このままではデフォルト・パッケージでエラーになるので、
パッケージをそれぞれ変更していきます。
波線の部分にマウスカーソルを合わせ、パッケージ”~~”に移動みたいなのを選択すれば、インポートは完了です。
最後にWebViewClientに下の記述を追加します。
1 2 3 | public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { handler.proceed() ; } |
これで無事SSLエラーを無視して表示できました!