2016-02-23 5 views
7

Sto provando a passare i dati dai miei siti Javascript alla mia app, scritto in Swift.Come passare i dati da Javascript a Swift all'interno di un 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) 
    } 
} 

Purtroppo, print(password) non viene mai chiamato.

Cosa mi manca qui?

+1

Non v'è alcun attributo 'password' nell'oggetto' messgeToPost'. – soflare

risposta

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

dimenticato di aggiungere una password