2014-09-26 19 views
6

tôi cố gắng sử dụng một số javascript trên WebView của tôi với mớiSwift stringByEvaluatingJavaScriptFromString

stringByEvaluatingJavaScriptFromString chức năng

Tôi m không im lặng quen thuộc với cú pháp nên tôi đã cố gắng

func stringByEvaluatingJavaScriptFromString("document.documentElement.style.webkitUserSelect='none'": String) -> String? 

như đây https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString: nhưng tôi gặp lỗi "Mong đợi". ' tách"

Trả lời

9

Phương pháp bạn đang cố gắng gọi được prototyped như sau:

func stringByEvaluatingJavaScriptFromString(_ script: String) -> String?

Điều này có nghĩa:

  • Phải mất một String như tham số duy nhất
  • Nó trả về một tùy chọn String (String?)

Bạn cần có một thể hiện của UIWebView để sử dụng nó:

let result = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.style.webkitUserSelect='none'") 

Bởi vì kiểu trả về là optional, nó cần phải được tháo trước khi bạn có thể sử dụng nó. Nhưng hãy cẩn thận, nó có thể không có giá trị (nghĩa là nó có thể bằng nil) và giá trị nil unwrapping dẫn đến sự cố thời gian chạy.

Vì vậy, bạn cần phải kiểm tra cho rằng trước khi bạn có thể sử dụng chuỗi trả về:

if let returnedString = result { 
    println("the result is \(returnedString)") 
} 

Điều này có nghĩa: Nếu result không phải là nil sau đó Unwrap nó và gán nó vào một hằng số mới gọi là returnedString.

Ngoài ra, bạn có thể bọc nó cùng với:

let script = "document.documentElement.style.webkitUserSelect='none'" 
if let returnedString = webView.stringByEvaluatingJavaScriptFromString(script) { 
    println("the result is \(returnedString)") 
} 

Hy vọng điều này có ý nghĩa đối với bạn.