【问题标题】:How to pass data from Javascript to Swift within a WKWebView?如何在 WKWebView 中将数据从 Javascript 传递到 Swift?
【发布时间】:2016-02-23 10:10:49
【问题描述】:

我正在尝试将数据从我的网站 Javascript 传递到我的应用程序,用 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) 从未被调用过。

我在这里错过了什么?

【问题讨论】:

  • messgeToPost 对象中没有password 属性。

标签: javascript xcode swift wkwebview


【解决方案1】:
var messgeToPost = {
     "username": "testing123",
     "password": "password"
};

忘记添加密码

【讨论】:

    猜你喜欢
    • 2015-11-13
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    相关资源
    最近更新 更多