在SWIFT 2.1中,Xcode7.1.1
我的代码将一个本地index.html加载到WKwebView中。我如何才能拥有对textField的引用,以便设置它们的一些属性?比如myWebViewTextField.userInteractionEnabled = false
或myWebViewTextField.enabled = false
医生说:
通过将windowScriptObject发送到WebView对象,可以获得一个窗口WebScriptObject对象.
我不知道从这里该怎么走。谢谢
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var containerView: UIView! = nil //allows the class to refrence WKWebView
var webView: WKWebView?
override func loadView() {
super.loadView()
self.webView = WKWebView()
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
//path explained http://www.cs.tut.fi/~jkorpela/fileurl.html
let baseUrl = NSURL(string: "file:///<path>/")
let path = NSBundle.mainBundle().pathForResource("index", ofType: "html")
let HTMLString: NSString?
do {
HTMLString = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
webView!.loadHTMLString(HTMLString as! String, baseURL: baseUrl )
} catch {
HTMLString = nil
}
}
1条答案
按热度按时间rsaldnfx1#
你阅读错了类的文档。WebView和WKWebView是不同的。后者更快更安全,但可操作性差。
对于WKWebView,您可能希望使用wkwebview.evaluateJavaScript来发送对DOM进行操作的整个代码字符串。completionHandler可以 * 异步 * 接收字符串和数字等简单结果,并基于这些结果触发更多的JS求值,但您不能接收DOM元素引用并直接从Swift调整它们的属性。