Android 2.3键盘在WebView中观看视频后停止弹出

时间:2012-07-25 01:12:47

标签: android input webview video-streaming

我有一个带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页面时,我无法重现这一点。

任何人都知道最新情况或我是否可以解决这个问题?

2 个答案:

答案 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);
    }
});
祝你好运!