【问题标题】:How do I force selection of a keyboard type in a Xamarin.Webkit.Webview如何在 Xamarin.Webkit.Webview 中强制选择键盘类型
【发布时间】:2017-01-18 14:08:47
【问题描述】:

我们有一个 Xamarin 应用程序 (Android),它在某个阶段打开一个 Web 视图(Webkit.Webview 不是 Forms.Webview)。这会将用户引导至为我们设置的第三方网站上的页面。

首先 - 在某些输入字段中显示的键盘是错误的 - 我们期待一个可关闭的键盘(即底角的“完成”,而不是“提交”)。我知道这可以改变,但不确定这样做的正确方法是什么。是否必须是更改的网页上的元数据/文本输入?如果是这样 - 页面 html 上的每个文本框条目需要修改什么?只是类型?即:

<input type="email">

其次,与其等待第三方修复页面,有没有办法可以强制 webview 始终打开某种键盘类型?

我们可以选择拦截键盘按键并尝试在返回时关闭键盘。但不希望在其中插入一个拦截每个按键的黑客。

感谢帮助,不知道前进的方向是什么。

谢谢

【问题讨论】:

  • 关于强制键盘类型的第二个问题,看起来this 帖子至少能够强制更改完成按钮文本。虽然从未尝试过。我知道,对于您的第一个问题,不同版本的 Android 在处理输入类型的方式和/或是否完全支持它们方面会大不相同。这是非常不幸的。您定位的最低 Android 版本是什么?
  • 目前最低为 4.2.2。我会通读你提到的帖子,看看我想出了什么。我认为扩展 Webview 是前进的方向,只是想知道我需要设置它的哪个部分来强制使用特定的软键盘,或者我需要修改网站的哪些部分
  • @hvaughan3 - 那篇文章帮助很大,我们现在已经设法找到一个可以接受的折衷方案。分配 outAttrs.ImeOptions = (ImeFlags)ImeAction.Next;但是,我希望像设备软按钮一样关闭键盘。在枚举中看不到选项。有任何想法吗?干杯
  • 问题是ImeAction.Next 用于take the user to the next input 而不是关闭键盘。我想知道您是否可以听到按下 Next 按钮并自己手动关闭键盘......可能值得一试。如果您需要手动关闭键盘的代码,请告诉我,尽管我从未尝试通过 WebView 尝试使用关闭代码来对抗键盘启动
  • 对,不幸的是,您需要在 JavaScript 代码或 C# 代码中捕获按键。也许您可以在&lt;input&gt; 上将 JavaScript 注入 WebView,它会查找要按下的回车键并移除焦点..?不确定这是否会关闭键盘,并且它也是一种黑客行为。如果键盘被关闭,添加ImeFlags.NoEnterAction 有什么不同吗?

标签: c# android xamarin webview


【解决方案1】:

来自 cmets:关于强制键盘按钮的第二个问题,您可以查看 this link,其中描述了如何覆盖 OnCreateInputConnection 以指定键盘输入按钮类型。

public class MyWebView : WebView {
    ...
    public override IInputConnection OnCreateInputConnection (EditorInfo outAttrs) {
        var inputConnection = base.OnCreateInputConnection (outAttrs);
        // outAttrs.ImeOptions in Xamarin only allows ImeFlags but it also should allow ImeActions
        outAttrs.ImeOptions = outAttrs.ImeOptions | (ImeFlags)ImeAction.Next;
        return inputConnection;
    }
}

点击时不会关闭你的键盘,因为它是为了take the user to the next input。希望其他人可以提供更好的答案,或者提供一种在这种情况下关闭键盘的好方法,而无需一起破解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2013-01-18
    • 2010-10-19
    相关资源
    最近更新 更多