WebView内の入力フォームでソフトウェアキーボードが出ない

WebView(アプリ内ブラウザ)で表示しているページに入力フォームがあった場合...

WebView内の入力フォームでソフトウェアキーボードが出ない

WebView(アプリ内ブラウザ)で表示しているページに入力フォームがあった場合、それをクリックしてもソフトウェアキーボードが出てこないことがあります。

ログイン画面でIDやパスワードの入力フォームが表示されているのに、クリックしても何もおこらないと、ログイン画面しか表示されないアプリになっちゃったりします。

これはどうも、WebViewにフォーカスが当たってないことが原因のようです。

「フォーカスが当たる」というのがどういう状態なのかイマイチわかってないところはありますが、次のようにすると解決するようです。

//入力フォーム選択時にフォーカスを当てる
webView2.requestFocus(View.FOCUS_DOWN);
 

WebView内の入力フォームでソフトウェアキーボードが出ない の続きを読む

WebView内でのレイアウト崩れを回避する方法

標準ブラウザで見ると、ちゃんと表示されるのに、
WebView(アプリ内ブラウザ)で同じページを閲覧すると
レイアウトが微妙に崩れたりすることがあります。

これはWebViewで表示したときに
右端にスクロールバー用の領域が10px分
自動的に確保されてしまうために起こっているのかもしれません。

これを防ぐ設定は以下の通り。

//右10pxの余白を消す
webView.setVerticalScrollbarOverlay(true);

これで10px分の領域が消えるので、正常に表示されるはずです。
 

WebViewのユーザーエージェントを取得・変更する方法

アプリ内ブラウザ WebView のユーザーエージェントは
このようにすると取得することができます。

String userAgentString = webView.getSettings().getUserAgentString();
Log.v("CHECK", userAgentString);
    ちなみに、Xperiaのユーザーエージェントはこんな感じ。
Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; SO-01B Build/2.0.2.B.0.29) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
    HTC Ariaのユーザーエージェントはこう。
Mozilla/5.0 (Linux; U; Android 2.2.1; ja-jp; HTC Liberty Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
    Androidなのに『Mobile Safari』なのが面白いところですね。 これはAndroidの標準ブラウザやWebViewが WebKitを元に開発されているからです。  

WebViewのユーザーエージェントを取得・変更する方法 の続きを読む

Android アプリ の 研究所 アンドロイド ナビ:2012年2月の記事
ココマイスターの勝手ファンサイト : 2012年2月27日
最近話題の革財布ブランドがあります。 最高級の皮革を使い、熟練の日本職人が手作業...
[PR] お気に入りのアプリが見つかる!appliko(アプリコ) : 2012年2月26日
AndroidもiPhoneも毎日どんどんアプリが増えてますが ぶっちゃけ、どの...
Androidでゲームアプリを作るのに便利なゲームエンジン : 2012年2月25日
いろんな種類のアプリを開発していますが ゲームアプリだけは別物だよなぁ、なんて思...
incorrect AVA format エラー(署名作成時) : 2012年2月25日
署名作成時に Keytool-error: java.io.IOExceptio...

今日のキーワード

当サイトのRSS

カテゴリー

Twitterボタン

アンドロイドナビについて / 記事投稿してみませんか? / イベント情報募集
Copyright (C) 2012 All Rights Reserved Android アプリ の 研究所 アンドロイド ナビ