WKWebView:加载页面后调用javascript

时间:2015-04-13 08:48:09

标签: javascript ios swift wkwebview wkwebviewconfiguration

我正在做以下事情:

  • 加载WKWebView,让我们调用视图A
  • 要求用户输入一些细节
  • 要求用户点击按钮
  • 截取WKWebView上的点击并推送应用程序的新视图,让我们调用此视图B
  • 允许用户在新视图中计算结果,然后返回到之前加载的WKWebView

现在:我想将我计算的信息添加到之前加载的网页( 查看A )。我知道如何做的唯一方法是在loadView()方法上加载一个javascript。但是,当您导航回查看B 查看A 时,此方法不会被调用视图A 已经加载。当视图A重新出现时强制重新加载会丢失用户编辑的字段中的值。

这是"标准"代码我必须调用脚本:

override func loadView() {
    super.loadView()
    var contentController = WKUserContentController();
    var userScript = WKUserScript(
        source: "setValue(5)",
        injectionTime: WKUserScriptInjectionTime.AtDocumentEnd,
        forMainFrameOnly: true
    )

    contentController.addUserScript(userScript)


    var config = WKWebViewConfiguration()
    config.userContentController = contentController

    self.webView = WKWebView(frame: self.containerView!.bounds, configuration: config)
  }  

所以现在我需要你的帮助才能理解如何调用方法" setValue(customparameter)"自定义值(在视图B 中计算)不在loadView中,但在视图重新出现时。

我可以将值存储在单个对象中,这样就可以了。但是我不知道如何在此阶段调用/注入javascript 。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

怎么样:

self.webView?.evaluateJavaScript("setValue(" + customparameter + ")")