Open Whatsapp on a particular number in swift
For swift 4.2 / Swift 5
func openWhatsapp(){
let urlWhats = "whatsapp://send?phone=(mobile number with country code)"
if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed){
if let whatsappURL = URL(string: urlString) {
if UIApplication.shared.canOpenURL(whatsappURL){
if #available(iOS 10.0, *) {
UIApplication.shared.open(whatsappURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(whatsappURL)
}
}
else {
print("Install Whatsapp")
}
}
}
}
For Swift 2.0
let urlWhats = "whatsapp://send?phone=(mobile number with country code)"
if let urlString = urlWhats.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()){
if let whatsappURL = NSURL(string: urlString) {
if UIApplication.sharedApplication().canOpenURL(whatsappURL){
UIApplication.sharedApplication().openURL(whatsappURL)
}
else {
print("Install Whatsapp")
}
}
}
Note: Add url scheme in info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>whatsapp</string>
</array>
Its possible You can send messages to Specfic user.
Direct app chat url open
let urlWhats = "whatsapp://send?phone=+919789384445&abid=12354&text=Hello"
if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) {
if let whatsappURL = URL(string: urlString) {
if UIApplication.shared.canOpenURL(whatsappURL!) {
UIApplication.shared.openURL(whatsappURL!)
} else {
print("Install Whatsapp")
}
}
}
Note:Country code (Ex:+91) is mandatory to open mobile number Chat
WebUrl Link open Chat
let whatsappURL = URL(string: "https://api.whatsapp.com/send?phone=9512347895&text=Invitation")
if UIApplication.shared.canOpenURL(whatsappURL) {
UIApplication.shared.open(whatsappURL, options: [:], completionHandler: nil)
}
Check below link,
https://www.whatsapp.com/faq/en/general/26000030
Note: Add url scheme in info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>whatsapp</string>
</array>