Share link using whatsapp

14,498

Solution 1

Add this to your Info.plist

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>whatsapp</string>
    </array>

Implement this code to the ViewController where you need to open WhatsApp for sharing. (like for example say a button action) Update for swift 3 version (Xcode 8.x) : Updated for deprecations:

var str = "This is the string which you want to share to WhatsApp"
str=str.addingPercentEncoding(withAllowedCharacters: (NSCharacterSet.urlQueryAllowed))!
let whatsappURL = URL(string: "whatsapp://send?text=\(str)")
if UIApplication.shared.canOpenURL(whatsappURL) {
   UIApplication.shared.open(whatsappURL!, options: [:], completionHandler: nil)
} else {
   showAlert(message: "Whatsapp is not installed on this device. Please install Whatsapp and try again.")
}

Here showAlert() is a custom function for showing an alert.

Solution 2

If you use "[[UIApplication sharedApplication] openURL: whatsappURL];" after string replcement it will open the safari browser not the whatsapp,

If you want to open whatsapp don't replace the string

Share:
14,498

Related videos on Youtube

Chandan Kumar Jha
Author by

Chandan Kumar Jha

Updated on September 15, 2022

Comments

  • Chandan Kumar Jha
    Chandan Kumar Jha over 1 year

    I used these code for share app link in what's app but nothing is come in the textfield of whatsapp. If using simple text then its work. Can anyone suggest the final outcome.

    NSString *theTempMessage = @"whatsapp://send?text=https://itunes.apple.com/in/app/myapp/id1054375332?ls=1&mt=8";
    NSString *theFinalMessage;
    
    theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@":" withString:@"%3A"];
    theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"/" withString:@"%2F"];
    theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"?" withString:@"%3F"];
    theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"," withString:@"%2C"];
    theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"=" withString:@"%3D"];
    theFinalMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"&" withString:@"%26"];
    
    NSString * stringToSend=theFinalMessage;
    NSURL *whatsappURL = [NSURL URLWithString:stringToSend];
    
    if ([[UIApplication sharedApplication] canOpenURL: whatsappURL])
    
    {
        [[UIApplication sharedApplication] openURL: whatsappURL];
    }