2016-02-23 15 views
7

Tôi đang cố chuyển dữ liệu từ trang web của mình Javascript tới ứng dụng của tôi, được viết bằng Swift.Làm cách nào để chuyển dữ liệu từ Javascript sang Swift trong 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) 
    } 
} 

Thật không may, print(password) không bao giờ được gọi.

tôi thiếu gì ở đây?

+1

Không có 'thuộc tính password' trong 'đối tượng messgeToPost'. – soflare

Trả lời

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

quên để thêm mật khẩu

Các vấn đề liên quan