2016-02-23 2 views
7

मैं स्विफ्ट में लिखे गए मेरे ऐप में जावास्क्रिप्ट को अपने ऐप से डेटा पास करने का प्रयास कर रहा हूं।WWWebView के भीतर जावास्क्रिप्ट से स्विफ्ट करने के लिए डेटा कैसे पास करें?

जावास्क्रिप्ट:

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" 
}; 

पासवर्ड

संबंधित मुद्दे