我正在执行以下操作:
- 加载一个 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)
}
因此,现在我需要您的帮助来了解如何使用自定义值(在视图 B中计算)而不是在 loadView 中而是在视图重新出现时调用方法“setValue(customparameter)”。
我可以将值存储在单例对象中,这样就可以了。但是我不知道在这个阶段如何调用/注入 javascript。有什么帮助吗?