use*_*468 6 javascript iphone xcode swift ios8
我创建了一个带有快速语言代码的iOS Web浏览器.并添加一个额外的按钮以在该网页上注入脚本,但是当我尝试这个时它总是崩溃:
webView!.evaluateJavaScript("document.body.style.background = 'red';", nil)
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?以及如何从文件中读取JavaScript代码,然后将其注入该webview元素.
我使用代码样式作为此示例,但使用WKWebView:https: //github.com/rshankras/WebViewDemo
如果你能解决这个问题,我需要一个基本的工作代码.以及如何从文件加载JavaScript的解决方案.并在WKWebView元素中注入该代码.
我在当前的UIWebView API 文档中没有看到您正在使用的方法 (evaluateJavaScript),但它在WKWebView 文档中。也许您使用了错误的 API?也许尝试使用 stringByEvaluatingJavaScriptFromString(_:)代替:
let script = "document.body.style.background = 'red'"
if let result = webView.stringByEvaluatingJavaScriptFromString(script) {
println("result is \(result)")
}
Run Code Online (Sandbox Code Playgroud)
另外,我不确定“!”是否有效。是需要的(直觉告诉我不是),因为你的代码周围没有上下文。所以也许可以尝试两个版本。
从文件中获取字符串类似于:
let path = NSBundle.mainBundle().pathForResource("jsFileName", ofType: "js")
if let content = String.stringWithContentsOfFile(path, encoding: NSUTF8StringEncoding, error: nil) {
println("js content is \(content)")
}
Run Code Online (Sandbox Code Playgroud)
从磁盘加载有很多关于文件复制和存储方式的变量,因此您必须做一些工作才能使变量适合path您的结构。
| 归档时间: |
|
| 查看次数: |
17441 次 |
| 最近记录: |