Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Share image/text through WhatsApp in an iOS app

Tags:

ios

iphone

Is it possible to share images, text or whatever you want through Whatsapp in a iOS app? I'm searching on google but I only found results talking about Android implementations.

like image 961
Albert Arredondo Alfaro Avatar asked Dec 02 '11 09:12

Albert Arredondo Alfaro


People also ask

How can I write in WhatsApp in iOS?

For iOS Users Just open the image and choose the WhatsApp contact to whom you need to send the file to. Now, choose Document instead of Photo and select the image file you want to share for Files. That's it. The photo will be sent as an uncompressed file.


1 Answers

Is now possible in this way:

Send Text - Obj-C

NSString * msg = @"YOUR MSG"; NSString * urlWhats = [NSString stringWithFormat:@"whatsapp://send?text=%@",msg]; NSURL * whatsappURL = [NSURL URLWithString:[urlWhats stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {     [[UIApplication sharedApplication] openURL: whatsappURL]; } else {     // Cannot open whatsapp } 

Send Text - Swift

let msg = "YOUR MSG" let urlWhats = "whatsapp://send?text=\(msg)" if let urlString = urlWhats.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()) {     if let whatsappURL = NSURL(string: urlString) {         if UIApplication.sharedApplication().canOpenURL(whatsappURL) {             UIApplication.sharedApplication().openURL(whatsappURL)         } else {             // Cannot open whatsapp         }     } } 

Send Image - Obj-C

-- in .h file

<UIDocumentInteractionControllerDelegate>  @property (retain) UIDocumentInteractionController * documentInteractionController; 

-- in .m file

if ([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"whatsapp://app"]]){      UIImage     * iconImage = [UIImage imageNamed:@"YOUR IMAGE"];     NSString    * savePath  = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/whatsAppTmp.wai"];      [UIImageJPEGRepresentation(iconImage, 1.0) writeToFile:savePath atomically:YES];      _documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:savePath]];     _documentInteractionController.UTI = @"net.whatsapp.image";     _documentInteractionController.delegate = self;      [_documentInteractionController presentOpenInMenuFromRect:CGRectMake(0, 0, 0, 0) inView:self.view animated: YES];   } else {     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"WhatsApp not installed." message:@"Your device has no WhatsApp installed." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];     [alert show]; } 

Send Image - Swift

let urlWhats = "whatsapp://app" if let urlString = urlWhats.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()) {     if let whatsappURL = NSURL(string: urlString) {          if UIApplication.sharedApplication().canOpenURL(whatsappURL) {              if let image = UIImage(named: "image") {                 if let imageData = UIImageJPEGRepresentation(image, 1.0) {                     let tempFile = NSURL(fileURLWithPath: NSHomeDirectory()).URLByAppendingPathComponent("Documents/whatsAppTmp.wai")                     do {                         try imageData.writeToURL(tempFile, options: .DataWritingAtomic)                         self.documentInteractionController = UIDocumentInteractionController(URL: tempFile)                         self.documentInteractionController.UTI = "net.whatsapp.image"                         self.documentInteractionController.presentOpenInMenuFromRect(CGRectZero, inView: self.view, animated: true)                     } catch {                         print(error)                     }                 }             }          } else {             // Cannot open whatsapp         }     } } 

Because a new security feature of iOS 9, you need add this lines on .plist file:

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

More information about url sheme: https://developer.apple.com/videos/play/wwdc2015-703/

I did not find a single solution for both. More information on http://www.whatsapp.com/faq/en/iphone/23559013

I made a small project to help some. https://github.com/salesawagner/SharingWhatsApp

like image 172
Wagner Sales Avatar answered Sep 29 '22 11:09

Wagner Sales