おはようございます。
先日、Androidアプリの受託案件で発生した問題のメモ。
【現象】
・Android 5.0以上の端末のWebViewの一部画像が表示されない問題が発生。
・Android 5.0未満の端末と、一部の画像以外は、正常に表示されている。
・現象が発生したページは、httpsのページで、表示されない画像は、httpのサイトに置いていた。
【解決策】
・Android 5.0以上のWebViewでセキュリティ強化された。
・httpsとhttpが混在するサイトで、httpsページからhttpにアクセスするのをブロックされる。
WebSettings | Android Developers #setMixedContentMode
・Android 5.0以上かどうかを判別し、5.0以上の場合、混在するページでもアクセス許可を行う。
1 2 3 4 5 |
<strong>WebView webView = (WebView) findViewById(R.id.webView); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }</strong> |
ただ、この方法は、httpもアクセス許可してしまうので、セキュリティ的にあまりよろしくない。
応急処置的な対処としてはいいが、
最終的には、サイト側をhttps化するのがベスト。
コメントを残す