ios - WKWebView 中的自定义键盘

标签 ios swift keyboard wkwebview

我想控制使用WKWebView时显示的键盘。

我有以下启动 webview 的快速代码:

let webView = WKWebView(frame: self.view.bounds, configuration: configuration)
webView.navigationDelegate = self

它将加载如下所示的 html:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <div class="inputElement textFieldInput">
        <input type="text" id="textField" value="" data-clear-btn="true"/>
    </div>
</body>
</html>

通常键盘由输入字段上的类型选项控制。 “num”代表数字键盘,“text”代表字母数字键盘。但我想拥有更多控制权。

我已经做了足够的研究,知道这不能通过使用文本框上的选项来完成。我非常期待编写修改打开 webview 的代码。

如何修改 swift 代码以允许我执行此操作?

理想情况下,我可以定义多个键盘并允许 html 代码像这样控制它们:<input type='customkb1'> and <input type='customkb2'>

我的直接需要是禁用键盘上的表情符号按钮,但我想要一个通用的解决方案,因为如果我可以定义一个特定于用户输入内容的键盘,我将能够真正提高我的应用程序的可用性。

以下是我们目前的发现: 这是我知道并用于应用程序 native 部分的技巧: https://stackoverflow.com/a/25861718/1885345

但它不适用于 webViews 这是从 WKWebView 指定键盘的方法: https://stackoverflow.com/a/28533488/1885345

但它没有设置键盘没有表情符号的选项 这就是我用来禁用第三方键盘的方法: https://stackoverflow.com/a/34863426/1885345

最佳答案

不错的挑战!到目前为止,我已经在 iPad 上对其进行了测试,并通过声明输入字段的 pattern 使其半工作(有一个警告):

<input type="text" pattern="[0-9]*" value="" data-clear-btn="true"/>

问题是键盘实际上首先弹出数字 View ,但它允许通过下方的 ABC 侧按钮切换字母数字(无表情符号) View 。 使用 Javascript,我将输入的值复制到另一个字段,Regex 实际上不会过滤掉 输入的字母数字字符。到目前为止一切顺利。

一旦您将 A-Za-z(作为前缀或后缀)放入模式中,表情符号按钮就会恢复。

我已经 try catch UIResponder.keyboardWillShowNotification 但没有返回键盘对象,因为我当时想以编程方式设置它的 UIKeyboardType,但是这个属性显然只反射(reflect)了 UITextViews。

或者,您可以声明password 类型的输入字段,使用Javascript 清除点并将实际值显示到另一个不可编辑的字段...

如果我找到更优雅的方式,我会更新我的答案,因为已经很晚了。干杯。

编辑:显然只使用带有 ReactNativeTextInput 元素您可以直接将 keyboardType 设置为 ascii-capable iOS 键盘,这将使我们从表情符号中解放出来。

关于ios - WKWebView 中的自定义键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53152019/

相关文章:

javascript - 在移动网络浏览器上自动显示软键盘

ios - 如何检查 NSArray 中的对象是否为 NSNull?

iphone - 为 SQLCipher 构建代码时出错

ios - 质量 : Custom AVFoundation Camera App VS. iOS 标准相机应用

swift - 从 Swift 4 中的数组中删除特定对象

javascript - 在 Javascript 中精确模拟用户的按键

ios - 我的 View 在屏幕外运行并且不会向下移动

ios - 即使 contentMode 设置为 ScaleAspectFit,在 UIButton 上设置背景图像也会拉伸(stretch)按钮

ios - 启用用户交互的淡入淡出 slider

android - 输入文本时如何抑制字典提示?