我已在由特定视图控制器控制的 WKWebView 中加载了以下html页面。 加载视图后,我希望应用程序自动填充页面中的输入文本字段。
在这个例子中,我希望应用程序在下面表格的“结果”文本字段中写下“Hello Result”。
<html>
<head>
<title>Test Page</title>
</head>
<body>
<form>
QR Result <input type="text" name="Result" width="20">
</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)并不重要。我希望能够做的是在 加载视图后的某个点填充该字段。
答案 0 :(得分:4)
我在textfield中添加了id属性 -
<form>
QR Result <input type="text" id="result" name="Result" width="20"/>
</form>
在Swift中 -
func webViewDidFinishLoad(webView: UIWebView!) {
self.wbView.stringByEvaluatingJavaScriptFromString("document.getElementById('result').value = 'Hello Result';")
}
检查屏幕截图 -
答案 1 :(得分:4)
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时出现错误反馈。