I am using webview
for my Swift app and I have "Share on WhatsApp" button on my website which works fine on a browser. But on iPhone app, when I click on the button, nothing happens.
How to open WhatsApp from my app? I am using Xcode 8 and iOS 10.
For Swift 4.2+ and iOS 9+
Method 1: (launches WhatsApp application if is installed)
let phoneNumber = "+989160000000" // you need to change this number
let appURL = URL(string: "https://api.whatsapp.com/send?phone=\(phoneNumber)")!
if UIApplication.shared.canOpenURL(appURL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL, options: [:], completionHandler: nil)
}
else {
UIApplication.shared.openURL(appURL)
}
}
Method 2:(open WhatsApp short-link web page using safari)
let phoneNumber = "+989160000000" // you need to change this number
let appURL = URL(string: "https://wa.me/\(phoneNumber)")!
if UIApplication.shared.canOpenURL(appURL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(appURL)
}
}
Note : '+' in phone number is OK.
I know this is an old question, but the following worked for me (I'm using xcode 8.3.3 and swift 3).
I added whatsapp query scheme inside Info.plist.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>whatsapp</string>
</array>
Info.plist
After adding it, the following works:
let urlString = "whatsapp://send?text=Message to share"
let urlStringEncoded = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let URL = NSURL(string: urlStringEncoded!)
if UIApplication.shared.canOpenURL(URL! as URL) {
UIApplication.shared.openURL(URL! as URL)
}
UIApplication.shared.openURL(URL(string:"https://api.whatsapp.com/send?phone=phoneNumber")!)
phoneNumber might be with (+) or not.
phoneNumber looks like 99455555555 or +99455555555
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With