Android 按下输入文本框时不显示键盘

发布于 2024-10-11 10:06:41 字数 349 浏览 5 评论 0原文

我正在尝试在我的网页中实现带有搜索框的 iframe。

问题是我有一个来自一个域的网页,假设该页面是 http:///myPage.html 我在它的 html 中有一个 iframe 元素,它引用不同域上的另一个 html。假设元素就像这样 /iframe_content.html">

并且在 http:///iframe_content.html 页面中我有一个输入文本框我想用作搜索框。

问题是当我使用 Android 冲浪时2.2 在我的原始网页中,我看到嵌入在 html 中的 iframe,当我按下输入文本框时,我看不到 Android 浏览器应提供的虚拟键盘,以便在其中插入一些文本

。有人帮忙吗?

I am trying to implement an iframe with a search-box in my web page.

The thing is that I have a web-page from one domain let say this page is http:///myPage.html
and I have in its html an iframe element which reference to another html on a different domain. let say the element is like so /iframe_content.html">

and in the http:///iframe_content.html page I have an input text box I want to use as a search-box.

The problem is when I surf with Android 2.2 to my original web-page, I see the iframe I embed in my html and when I press the input-text-box I don't see the virtual keyboard Android browser should supply in-order to insert some text into it.

Can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏末染殇 2024-10-18 10:06:41

创建一个类并使用 webview 扩展它

private class MwebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        waitDialog = new ProgressDialog(context);
        waitDialog.setMessage("Loading Page...");
        waitDialog.setIndeterminate(true);
        waitDialog.show();
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        if (waitDialog != null) {
            waitDialog.dismiss();
        }
    }

    @Override
    public void onScaleChanged(WebView view, float oldScale, float newScale) {
        super.onScaleChanged(view, oldScale, newScale);

//强制显示键盘,然后它将在任何文本字段按键上显示键盘

InputMethodManager inputMgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMgr.toggleSoftInput(InputMethodManager.RESULT_UNCHANGED_SHOWN, InputMethodManager.RESULT_UNCHANGED_SHOWN);
        }
    }

现在,当您单击任何文本字段时,它都会显示键盘。第一次,它可能会在页面加载时显示键盘,而无需任何用户交互。

Create a class and extend it with webview

private class MwebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        waitDialog = new ProgressDialog(context);
        waitDialog.setMessage("Loading Page...");
        waitDialog.setIndeterminate(true);
        waitDialog.show();
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        if (waitDialog != null) {
            waitDialog.dismiss();
        }
    }

    @Override
    public void onScaleChanged(WebView view, float oldScale, float newScale) {
        super.onScaleChanged(view, oldScale, newScale);

//forcefully show keyboard, and then it will show keyboard on any text field key press

InputMethodManager inputMgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMgr.toggleSoftInput(InputMethodManager.RESULT_UNCHANGED_SHOWN, InputMethodManager.RESULT_UNCHANGED_SHOWN);
        }
    }

And now when ever you click on any text field it will show the keyboard. First time it might show keyboard on page load with out any user interaction.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文