gpt4 book ai didi

ios - WKWebView 中的自定义键盘

转载 作者:搜寻专家 更新时间:2023-10-31 22:38:07 25 4
gpt4 key购买 nike

我想控制使用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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com