Sending message to WhatsApp from your app using Swift?
var url = NSURL(string: "whatsapp://send?text=Hello%20Friends%2C%20Sharing%20some%20data%20here...%20!")//Text which will be shared on WhatsApp is: "Hello Friends, Sharing some data here... !" if UIApplication.sharedApplication().canOpenURL(url!) { UIApplication.sharedApplication().open(url as URL, options: [:]) { (success) in if success { print("WhatsApp accessed successfully") } else { print("Error accessing WhatsApp") } } }
Note: text needs to be URL encoded. You can get it using any of the open source tools over internet or using addingPercentEncoding(withAllowedCharacters:) function in iOS.e.g.
var urlString = "Hello Friends, Sharing some data here... !"var urlStringEncoded = urlString.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)var url = NSURL(string: "whatsapp://send?text=\(urlStringEncoded!)")
Swift 3.0
Try with this code for access watsapp in your application. Its working perfectly for me.
@IBAction func sendButtonAction(_ sender: Any){ let date = Date() let msg = "Hi my dear friends\(date)" let urlWhats = "whatsapp://send?text=\(msg)" if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) { if let whatsappURL = NSURL(string: urlString) { if UIApplication.shared.canOpenURL(whatsappURL as URL) { UIApplication.shared.openURL(whatsappURL as URL) } else { print("please install watsapp") } } }}
Swift 5
Code
let urlWhats = "whatsapp://send?text=\("Hello World")"if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) { if let whatsappURL = NSURL(string: urlString) { if UIApplication.shared.canOpenURL(whatsappURL as URL) { UIApplication.shared.open(whatsappURL as URL) } else { print("please install watsapp") } }}