在UIWebView中从JavaScript获取返回值

Zai*_*han 11 javascript objective-c uiwebview ios swift

我想在ViewController中获取JavaScript返回值,

问题是,如果像String这样的数据很少,我就会得到它.

但是如果有像JSON对象那样的大数据,它显示为零.

当我在Safari> Develop> iOS模拟器中调用相同的JS函数时,它会在1-2秒后给出JSON对象.

这是我的代码:

var value = IBwebView.stringByEvaluatingJavaScriptFromString("get_small_string()")
println(value)   //Printing value
Run Code Online (Sandbox Code Playgroud)

但这打印为零,

var value = IBwebView.stringByEvaluatingJavaScriptFromString("get_JSON()")
println(value)   //Printing nil
Run Code Online (Sandbox Code Playgroud)

谁知道如何在iOS对象中获取大尺寸JS返回值?

Zai*_*han 5

这解决了我的问题,

var value = IBwebView.stringByEvaluatingJavaScriptFromString("get_JSON()")

var err:NSError?
var obj:AnyObject? = NSJSONSerialization.JSONObjectWithData(value!.dataUsingEncoding(NSUTF8StringEncoding)!, options:nil, error:&err)

if let items = obj as? NSDictionary {
var data1:String = items.objectForKey("data1") as? String
var data2:String = items.objectForKey("data2") as? String
var data3:String = items.objectForKey("data3") as? String
}
Run Code Online (Sandbox Code Playgroud)