我尝试在我的 WebView 上使用一些 javascript 和新的
stringByEvaluatingJavaScriptFromString
功能
我不太熟悉语法,所以我尝试了
func stringByEvaluatingJavaScriptFromString( "document.documentElement.style.webkitUserSelect='none'": String) -> String?
如图所示https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString:但我收到一个错误“预期'。'分隔器”
您尝试调用的方法的原型如下:
func stringByEvaluatingJavaScriptFromString(_ script: String) -> String?
这意味着 :
- 这需要一个
String
作为单个参数
- 它返回一个可选的
String
(String?
)
你需要有一个实例UIWebView
使用它:
let result = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.style.webkitUserSelect='none'")
因为返回类型是optional https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-XID_485,需要先拆开包装才能使用。
但要小心,它可能没有值(即它可能等于nil
)并且展开 nil 值会导致运行时崩溃。
因此,在使用返回的字符串之前,您需要检查这一点:
if let returnedString = result {
println("the result is \(returnedString)")
}
这意味着:如果result
is not nil
然后解开它并将其分配给一个名为的新常量returnedString
.
此外,您可以将其包装在一起:
let script = "document.documentElement.style.webkitUserSelect='none'"
if let returnedString = webView.stringByEvaluatingJavaScriptFromString(script) {
println("the result is \(returnedString)")
}
希望这对您有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)