执行javascript时不支持返回类型

执行javascript时不支持返回类型,javascript,ios,types,swift3,wkwebview,Javascript,Ios,Types,Swift3,Wkwebview,我使用WKWebview.evaluateJavaScript()执行javascript,我可以从javascript中获取字符串、对象和数组 evaluateJavaScript("document.getElementById('title').innerHTML;") /* output: Optional(hhhhhhhhhhhhhh) */ evaluateJavaScript("[1,2];") /* output: Optional(<__NSArrayM 0x17005

我使用WKWebview.evaluateJavaScript()执行javascript,我可以从javascript中获取字符串、对象和数组

evaluateJavaScript("document.getElementById('title').innerHTML;")
/*
output:
Optional(hhhhhhhhhhhhhh)
*/

evaluateJavaScript("[1,2];")
/*
output:
Optional(<__NSArrayM 0x17005faa0>(
1,
2
)
*/

evaluateJavaScript("{a:1, b:2};")
/*
output:
Optional({
    a = 1;
    b = 2;
})
*/
evaluateJavaScript(“document.getElementById('title').innerHTML;”)
/*
输出:
可选(HHHHHHHHHHHHHHHHHHH)
*/
evaluateJavaScript(“[1,2];”)
/*
输出:
可选的((
1.
2.
)
*/
evaluateJavaScript(“{a:1,b:2};”)
/*
输出:
可选的({
a=1;
b=2;
})
*/
当我执行这个代码时

evaluateJavaScript(“document.getElementById('test').getBoundingClientRect();”)
//{x:0,y:0,宽度:0,高度:0,顶部:0,右侧:0,底部:0,左侧:0}的对象

我得到这个错误

可选(错误域=WKErrorDomain代码=5“执行JavaScript不支持的返回类型” UserInfo={NSLocalizedDescription=执行JavaScript不支持的返回类型})nil


感谢您的帮助。

我想这里是
文档的结果。getElementById('liveMovie')。getBoundingClientRect();
不受swift支持

所以我把它改成一个数组,像这样

 self.wk.evaluateJavaScript("var rect = document.getElementById('liveMovie').getBoundingClientRect();[rect.left, rect.top];") {
        (result, error) -> Void in
        if((result) != nil)
        {
            self.player?.view?.frame.origin.x = (result as! Array)[0]
            self.player?.view?.frame.origin.y = (result as! Array)[1]
        }
    }

不应该
{a:1,b:2};
({a:1,b:2});
{a:1,b:2};
在这里工作得很好。感谢这个解决方案,它帮助我解决了类似的问题。如果您的js字符串以
[];
结尾,您也会很好的。干杯。