【发布时间】:2020-07-25 15:44:13
【问题描述】:
我正在尝试从 wkwebview 快速调用本机函数。这是我到目前为止所做的:
斯威夫特部分
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
contentController.add(self, name: "backHomePage")
config.userContentController = contentController
self.webView = WKWebView(frame: self.containerView.bounds, configuration: config)
webView.navigationDelegate = self
self.containerView.addSubview(self.webView)
if let url = URL(string: assessmentLink) {
webView.load(URLRequest(url: url))
}
}
还有
extension WebFormVC: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print("javascript sending \(message.name), body: \(message.body)")
}
}
Javascript
function backHomePage(message) {
window.webkit.messageHandlers.backHomePage.postMessage(message);
}
其中消息可以是任何字符串,例如:“成功”
我目前没有在userContentController didReceive 方法中收到回电
更新
我还尝试将数据作为键值发送,例如 window.webkit.messageHandlers.backHomePage.postMessage({"message" :"Javascript to swift!"});
,但还是不行。
【问题讨论】:
标签: javascript ios swift wkwebview