por para enviar documentos descargar iphone ios

iphone - para - Compartir imagen/texto a través de WhatsApp en una aplicación de iOS



enviar pdf por whatsapp iphone (11)

¿Es posible compartir imágenes, texto o lo que quieras a través de Whatsapp en una aplicación de iOS? Estoy buscando en Google, pero solo encontré resultados sobre las implementaciones de Android.

¡Gracias por adelantado!



Ahora es posible de esta manera:

Enviar texto - 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 }

Enviar texto - 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 } } }

Enviar imagen - Obj-C

- en archivo .h

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

- en archivo .m

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]; }

Enviar imagen - 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 } } }

Debido a que una nueva característica de seguridad de iOS 9, necesita agregar estas líneas en el archivo .plist :

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

Más información sobre url sheme: https://developer.apple.com/videos/play/wwdc2015-703/

No encontré una sola solución para ambos. Más información en http://www.whatsapp.com/faq/en/iphone/23559013

Hice un pequeño proyecto para ayudar a algunos. https://github.com/salesawagner/SharingWhatsApp


Ahora es posible. Aún no lo he intentado.

Las últimas http://www.whatsapp.com/faq/en/iphone/23559013 indican que puede http://www.whatsapp.com/faq/en/iphone/23559013 a través de la extensión compartida:

WhatsApp acepta los siguientes tipos de contenido:

  • texto (UTI: public.plain-text)
  • fotos (UTI: public.image)
  • videos (UTI: public.movie)
  • notas de audio y archivos de música (UTI: public.audio)
  • Documentos PDF (UTI: com.adobe.pdf)
  • tarjetas de contacto (UTI: public.vcard)
  • URL web (UTI: public.url)

Este es el código correcto para compartir el enlace a los usuarios de la aplicación.

NSString * url = [NSString stringWithFormat:@"http://video...bla..bla.."]; url = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef) url, NULL,CFSTR("!*''();:@&=+$,/?%#[]"),kCFStringEncodingUTF8)); NSString * urlWhats = [NSString stringWithFormat:@"whatsapp://send?text=%@",url]; NSURL * whatsappURL = [NSURL URLWithString:urlWhats]; if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) { [[UIApplication sharedApplication] openURL: whatsappURL]; } else { // can not share with whats app }


Si es posible :

NSMutableArray *arr = [[NSMutableArray alloc]init]; NSURL *URL = [NSURL fileURLWithPath:path]; NSString *textToShare = [NSString stringWithFormat:@"%@ /n",_model.title]; NSString *SchoolName= [[AppUtility sharedUtilityInstance]getAppConfigInfoByKey:@"SchoolName" SecondKeyorNil:Nil]; [arr addObject:textToShare]; [arr addObject:URL]; [arr addObject:_model.body]; [arr addObject:SchoolName]; TTOpenInAppActivity *openInAppActivity = [[TTOpenInAppActivity alloc] initWithView:_parentController.view andRect:((UIButton *)sender).frame]; UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:arr applicationActivities:@[openInAppActivity]]; // Store reference to superview (UIActionSheet) to allow dismissal openInAppActivity.superViewController = activityViewController; // Show UIActivityViewController [_parentController presentViewController:activityViewController animated:YES completion:NULL];


Swift 3 versión de la respuesta de Wagner Sales:

let urlWhats = "whatsapp://app" if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) { if let whatsappURL = URL(string: urlString) { if UIApplication.shared.canOpenURL(whatsappURL) { if let image = UIImage(named: "image") { if let imageData = UIImageJPEGRepresentation(image, 1.0) { let tempFile = NSURL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("Documents/whatsAppTmp.wai") do { try imageData.write(to: tempFile!, options: .atomic) self.documentIC = UIDocumentInteractionController(url: tempFile!) self.documentIC.uti = "net.whatsapp.image" self.documentIC.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true) } catch { print(error) } } } } else { // Cannot open whatsapp } } }


WhatsApp proporciona dos formas para que su aplicación de iPhone interactúe con WhatsApp:

  • A través de un esquema de URL personalizado
  • A través de la API de interacción de documentos de iOS

Para más información visita http://www.whatsapp.com/faq/en/iphone/23559013

Gracias.


No, esto no es posible, WhatsApp no ​​tiene ninguna API pública que pueda usar.

Tenga en cuenta que esta respuesta es correcta para 2011 cuando no había API para WhatsApp.

Ahora hay una API disponible para interactuar con WhatsApp: http://www.whatsapp.com/faq/en/iphone/23559013

La llamada de Objective-C para abrir una de estas URL es la siguiente:

NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=Hello%2C%20World!"]; if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) { [[UIApplication sharedApplication] openURL: whatsappURL]; }


Código simple y código de muestra ;-)

Nota: - Solo puede compartir texto o imagen, ambos compartiendo juntos en WhatsApp no ​​está funcionando desde el lado de WhatsApp

/* //Share text NSString *textToShare = @"Enter your text to be shared"; NSArray *objectsToShare = @[textToShare]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; [self presentViewController:activityVC animated:YES completion:nil]; */ //Share Image UIImage * image = [UIImage imageNamed:@"images"]; NSArray *objectsToShare = @[image]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; [self presentViewController:activityVC animated:YES completion:nil];


Swift 3 versión para enviar texto:

func shareByWhatsapp(msg:String){ let urlWhats = "whatsapp://send?text=/(msg)" if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) { if let whatsappURL = NSURL(string: urlString) { if UIApplication.shared.canOpenURL(whatsappURL as URL) { UIApplication.shared.openURL(whatsappURL as URL) } else { let alert = UIAlertController(title: NSLocalizedString("Whatsapp not found", comment: "Error message"), message: NSLocalizedString("Could not found a installed app ''Whatsapp'' to proceed with sharing.", comment: "Error description"), preferredStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: NSLocalizedString("Ok", comment: "Alert button"), style: UIAlertActionStyle.default, handler:{ (UIAlertAction)in })) self.present(alert, animated: true, completion:nil) // Cannot open whatsapp } } } }

Además, debe agregar whatsapp a LSApplicationQueriesSchemes en su Info.plist


NSString *shareText = @"http:www.google.com"; NSArray *objectsToShare = @[shareText]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; if (isIphone) { [self presentViewController:activityVC animated:YES completion:nil]; } else { UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityVC]; [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; }