1

我有一个简单的应用程序,WebView它加载一个 html 页面。HTML 页面仅包含一个input字段和一个iframeiframe用于嵌入 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 页面时,我无法重现这一点。

任何人都知道发生了什么,或者我是否可以解决这个问题?

4

2 回答 2

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;
    }
});
于 2012-07-25T01:38:30.667 回答
0

我今天有同样的问题。以下解决方案对我有用:

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        view.requestFocus();
        super.onPageFinished(view, url);
    }
});

祝你好运!

于 2014-02-28T14:52:11.480 回答