javascript - 如何在WKWebView中调用带参数/不带参数的JavaScript函数?

标签 javascript ios swift swift3 wkwebview

我已在WKWebView中加载网站网址。 在处理 WKScriptMessageHandler 后的某个阶段,我做了一些 native 操作。

完成 native 操作后,我想在现有加载的WKWebView中调用java脚本函数。

用于测试Javascript功能很简单

function try_once()
{
    // some code
}

在 Swift 中我做到了:

let str = "try_once();"

self.wkWeb.evaluateJavaScript(str, completionHandler: { (obj, error) in

                if error != nil
                {
                    print("Error: \(String(describing: error))")
                }
                else
                {
                    print("Object : \(String(describing: obj))")
                }
            })

但是我收到了这个错误:

Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=ReferenceError: Can't find variable: try_once, WKJavaScriptExceptionSourceURL=http://SOMEURL/user/signin/?_next=/v2/#, NSLocalizedDescription=A JavaScript exception occurred, WKJavaScriptExceptionColumnNumber=9})

最佳答案

这可能是因为您尝试执行的 JavaScript 函数在方法调用时未加载。您可以添加一个观察者来在加载脚本后执行它。 要添加观察者,请查看此 answer .

引用:Can't find variable error when calling method

谢谢。希望这会有所帮助。

关于javascript - 如何在WKWebView中调用带参数/不带参数的JavaScript函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43252383/

相关文章:

ios - 动态图标 iOS

ios - UIViewController 不响应旋转功能

swift - 如何更改 SwiftMoment 的语言环境参数?

快速 alamofire json 解析

ios - 尝试使用依赖注入(inject)设置核心数据堆栈

javascript - 在 Meteor 中使用 Facebook 请求对话

javascript - Google 地理 map API 中的标签

javascript - 删除之前通过 jQuery 添加的类

arrays - Swift 字符串数组一直显示为空

javascript - 如何等待 _.each 循环与 ajax 调用完成?