在WKWebView中填充输入文本字段

时间:2015-04-10 12:35:23

标签: ios swift wkwebview

我已在由特定视图控制器控制的 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)并不重要。我希望能够做的是在 加载视图后的某个点填充该字段。

2 个答案:

答案 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';")
    }

检查屏幕截图 -

enter image description here

答案 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时出现错误反馈。