アプリ内にWebViewを埋め込む際に、Twitterのページをスマホでアクセスをすると、ローディング画面がはじまりますが待てど暮らせど、ローディングが終わりません。
結局、内部にセッションを保ちたい場合には、その要素がwebclientに実装がされてない場合には自分で実装をしなくてはいけないようです。
【失敗談1】
キャッシュをオンする
webView.getSettings().setCacheMode(true)
上記で、キャッシュをオンしたのですが、やはり通じなかったです。
【失敗談2】
クッキーをオンする。(参照:AndroidのWebViewにて、mixiにログインするためのソース:urapicoのメモ帳)
webView.setWebViewClient(new WebViewClient(){ String loginCookie = ""; @Override public void onLoadResource(WebView wv, String url){ CookieManager cMgr = CookieManager.getInstance(); loginCookie = cMgr.getCookie(url); } @Override public void onPageFinished(WebView wv, String url){ CookieManager cMgr = CookieManager.getInstance(); cMgr.setCookie(url, loginCookie); } });
このmixiでできるなら、出来るだろうとタカをくくっていたのでショックでした。。
上記の2度の失敗で割りとあきらめかけたのですが、
Android1.6以降対応アプリのwebViewでTwitterがずーと表示されない現象への対処|アンドロイドノート(Android Note)
対処方法
webView.getSettings().setDomStorageEnabled(true);
とこの問題に直面している人が少なかったのは、きっとwebViewでtwitterにいくなんて事はしないで、twitterクライアントを選ばせて実行する方がandroidでポピュラーなのかなぁと思いました。
上記の感じで。
ツイッターが確認できました。
また、ついでになるのですが、デフォルトで、アンドロイドのスクロールバーの背景が白くなるので、右端に変な隙間みたいのができる時があります。そういう場合は
webView.setVerticalScrollbarOverlay(true);
で対応が可能です。