如何在 WKWebView 中将数据从 Javascript 传递到 Swift? [英] How to pass data from Javascript to Swift within a WKWebView?
本文介绍了如何在 WKWebView 中将数据从 Javascript 传递到 Swift?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将数据从我的网站 Javascript 传递到我用 Swift 编写的应用程序.
I am trying to pass data from my sites Javascript to my app, written in Swift.
Javascript:
var messgeToPost = {
"username": "testing123"
};
window.webkit.messageHandlers.loginSuccess.postMessage(messgeToPost);
斯威夫特:
var webConfig:WKWebViewConfiguration {
get {
var webCfg:WKWebViewConfiguration = WKWebViewConfiguration()
var userController:WKUserContentController = WKUserContentController()
userController.addScriptMessageHandler(self, name: "loginSuccess")
webCfg.userContentController = userController;
return webCfg;
}
}
override func viewDidLoad() {
var userController:WKUserContentController = WKUserContentController()
userController.addScriptMessageHandler(self, name: "loginSuccess")
webView = WKWebView(frame: self.view.frame,
configuration: webConfig)
webView.loadRequest(NSURLRequest(URL: NSURL(string: URLPath)!))
}
func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) {
if let messageBody:NSDictionary = message.body as? NSDictionary {
let password:String = messageBody["password"] as! String
print(password)
}
}
不幸的是,print(password)
从未被调用.
Unfortunately, print(password)
is never called.
我在这里遗漏了什么?
推荐答案
var messgeToPost = {
"username": "testing123",
"password": "password"
};
忘记添加密码
这篇关于如何在 WKWebView 中将数据从 Javascript 传递到 Swift?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文