ある動画配信サービスを利用した、動画再生ページをWebviewで、
再生できない問題にぶつかりました。。
どうしてだろう・・・と途方にくれたので、Webviewをデバッグして原因を探りました。
1. Webviewのデバッグ方法
1. 下記コードをApplicationクラスかWebviewを使用するクラスに埋め込む
//デバッグビルド時
if(BuildConfig.DEBUG){
//Android OS 4.4以上の端末なら
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//Google Chromeのウェブインスペクタを有効化する
WebView.setWebContentsDebuggingEnabled(true);
}
}
2. USBケーブルでAndroidとPCを接続して、Chromeを起動する
3. アプリケーションを起動し、Webviewを開く
4. アドレスバーに、chrome://inspect/#devices
を入力して、開く
5. 画面に、Webview一覧が表示されるので、inspectを押下する
以降、端末を操作するか、ブラウザに表示された端末を操作することで、
デバッグツールと同様の表示することができました。
2. Web Storageの有効化
動画が再生されない原因は、Web Storageが有効化されていなかったことでした。
1. WebsSettingsインスタンスを取得する
WebSetting webSettings = mWebview.getSettings();
2. WebviewのJavaScriptを有効化する
webSettings.setJavaScriptEnabled(true);
3. WebviewのWeb Storageを有効化する
webSettings.setDomStorageEnabled(true);
ひとつひとつ細かく設定できるようになっているのは良いことですね。
Webviewのデバッグもできるのも良いですね〜。
ただ、ネイティブAndroidエンジニアとして、あまりWebviewは使いたく(ry