【发布时间】:2021-01-30 15:04:40
【问题描述】:
很抱歉,如果这个问题已经被问过,但我能找到的所有答案都是复杂的解决方案。
我有一个viewController,就是webView。我从 WebKit 库中将WKWebView 添加到我的视图中,并打开了简单的 url。在我的 ViewController 内部,我有一个名为 showAd 的本机函数。
当用户按下在 javascript 中实现的按钮时,它会显示调用showRewardsAd。我将断点设置为 userContentController,但是,它永远不会去那里。
func showAd(){
print("invoked")
}
extension WFWebViewController: WKScriptMessageHandler{
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "showRewardsAd"{
self.showRewards()
webView.evaluateJavaScript("test", completionHandler: nil)
}
}
}
我的目标是简单地允许从 javascript 部分调用此函数。据我所知,如果我想在 swift 中调用 javascript 函数,我只需要说:
webview.addJavascriptInterface('javascript: function_name();')
但是,就我而言,我想以相反的顺序进行。在 Javascript 代码中调用 swift 函数。
【问题讨论】:
标签: javascript ios swift webkit