在WKWebView中填充输入文本字段

mm2*_*m24 3 ios swift wkwebview

我已将以下html页面加载到由特定视图控制器控制的WKWebView中。加载视图,我希望该应用程序自动在页面中填充输入文本字段。

在此示例中,我希望应用程序在下面表单的“结果”文本字段中写入“ Hello Result”。

<html>
<head>
    <title>Test Page</title>
</head>
<body>
<form>
 QR Result <input type="text" name="Result" width="20">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我将HTML页面作为文件加载到视图控制器中的代码:

   var htmlFile = NSBundle.mainBundle().pathForResource("apptest", ofType: "html")
        var contents = NSString(contentsOfFile: htmlFile!, encoding: NSUTF8StringEncoding, error: nil)
        self.webView?.loadHTMLString(contents!, baseURL: nil)
Run Code Online (Sandbox Code Playgroud)

我如何加载视图(文件或URL)都没有关系。我想要做的是加载视图后的某个时候填充字段。

bad*_*_cl 5

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)
    })
Run Code Online (Sandbox Code Playgroud)

WKWebView的版本更好,因为它会在执行JS问题时提供错误反馈。


Utt*_*nha 4

我在文本字段中添加了 id 属性 -

<form>
 QR Result <input type="text" id="result" name="Result" width="20"/>
</form>
Run Code Online (Sandbox Code Playgroud)

在斯威夫特 -

func webViewDidFinishLoad(webView: UIWebView!) {        
        self.wbView.stringByEvaluatingJavaScriptFromString("document.getElementById('result').value = 'Hello Result';")
    }
Run Code Online (Sandbox Code Playgroud)

检查截图 -

在此输入图像描述

  • 哦,stringByEvaluatingJavaScriptFromString 的等价物是 WKWebView 中的valuateJavaScript。检查这是否有效。 (3认同)