我有一个带WebView
的简单应用程序,它加载了一个html页面。
HTML页面仅包含input
字段和iframe
字段,iframe
用于嵌入YouTube视频。
<fieldset>
<legend>Video Test</legend>
<input type="text" id="text-callee-dataReceived" name="text-callee-dataReceived" size="80" value="" />
<iframe class="youtube-player" type="text/html" width="100%" height="100%" src="http://www.youtube.com/embed/-qTIGg3I5y8" frameborder="0">
</iframe>
</fieldset>
当我点击输入字段时,键盘会按预期出现。但是,当我先播放视频然后点击输入字段时,即使输入字段获得焦点(即光标显示在其中并闪烁),键盘也不会出现。
注意:当我使用Android浏览器访问HTML页面时,我无法重现这一点。
任何人都知道最新情况或我是否可以解决这个问题?
答案 0 :(得分:0)
可能原因是此处描述的错误:http://code.google.com/p/android/issues/detail?id=7189
因此尝试以编程方式设置焦点:
webview.requestFocus(View.FOCUS_DOWN);
webview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
if (!v.hasFocus()) {
v.requestFocus();
}
break;
}
return false;
}
});
答案 1 :(得分:0)
我今天遇到了同样的问题。以下解决方案对我有用:
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.requestFocus();
super.onPageFinished(view, url);
}
});
祝你好运!