2016-02-23 60 views
7

我試圖從我的網站JavaScript傳遞數據到我的應用程序,用Swift編寫。如何將數據從Javascript傳遞到WKWebView中的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)不會被調用。

我在這裏錯過了什麼?

+1

沒有'的'messgeToPost'對象password'屬性。 – soflare

回答

4
var messgeToPost = { 
    "username": "testing123", 
    "password": "password" 
}; 

忘了加密碼

相關問題