在 WKWebView 中填充输入文本字段
Posted
技术标签:
【中文标题】在 WKWebView 中填充输入文本字段【英文标题】:Populating input text field in WKWebView 【发布时间】:2015-04-10 12:35:23 【问题描述】:我在由特定视图控制器控制的 WKWebView 中加载了以下 html 页面。 视图加载后,我希望应用程序自动填充页面中的输入文本字段。
在本例中,我希望应用在下面表单的“结果”文本字段中写入“Hello Result”。
<html>
<head>
<title>Test Page</title>
</head>
<body>
<form>
QR Result <input type="text" name="Result" >
</form>
</body>
</html>
这是我在视图控制器中将 HTML 页面加载为文件的代码:
var htmlFile = NSBundle.mainBundle().pathForResource("apptest", ofType: "html")
var contents = NSString(contentsOfFile: htmlFile!, encoding: NSUTF8StringEncoding, error: nil)
self.webView?.loadHTMLString(contents!, baseURL: nil)
我如何加载视图(文件或 URL)并不重要。我想要做的是在加载视图之后填充该字段。
【问题讨论】:
【参考方案1】:Uttam Sinha 的答案相当于 wkwebview/swift。
webview.evaluatejavascript("document.getElementById('result').value = 'Hello Result';", completionHandler: (res, error) -> Void in
//Here you can check for results if needed (res) or whether the execution was successful (error)
)
WKWebView 的版本更好,因为它会在执行 JS 出现问题时提供错误反馈。
【讨论】:
【参考方案2】:我在文本字段中添加了 id 属性 -
<form>
QR Result <input type="text" id="result" name="Result" />
</form>
在 Swift 中 -
func webViewDidFinishLoad(webView: UIWebView!)
self.wbView.stringByEvaluatingJavaScriptFromString("document.getElementById('result').value = 'Hello Result';")
查看截图 -
【讨论】:
您能快速提供示例吗? 你好,对不起,但这个适用于 UIWebView 而不是 WKWebView.. 无论如何谢谢 :) 哦,等价于 stringByEvaluatingJavaScriptFromString 的是 WKWebView 中的 evaluateJavaScript。检查这是否有效。以上是关于在 WKWebView 中填充输入文本字段的主要内容,如果未能解决你的问题,请参考以下文章
在 keydown 上禁用 WKWebView “funk”声音,但允许输入输入字段
如何从 webkit swiftUI 中的文本字段中搜索自定义文本