2016-02-23 11 views
7

Próbuję przekazać dane z moich stron JavaScript do mojej aplikacji napisanej w języku Swift.Jak przekazać dane z JavaScript do Swift w WKWebView?

Javascript:

var messgeToPost = { 
    "username": "testing123" 
}; 
window.webkit.messageHandlers.loginSuccess.postMessage(messgeToPost); 

Swift:

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) 
    } 
} 

Niestety print(password) nigdy nie jest wywoływana.

Czego mi tu brakuje?

+1

Nie ma 'password' atrybut w' obiektu messgeToPost'. – soflare

Odpowiedz

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

zapomniał dodać hasło

Powiązane problemy