2015-04-20 480 views
28

我已经GOOGLE了,并得到一些解决方案,似乎唯一可能的方式是通过UIDocumentInteractionController。我找到了能够分享的结果文字只,还发现分享的结果图片只。iOS分享图片和文字到WhatsApp

但我想要的是share BOTH

我知道这个问题可能是重复的,我只想说清楚,这里是截图...

WhatsApp share image + text

(这是从Android的共享)

+0

您是否找到针对此问题的解决方案? –

+0

@ VishnuKumar.S不,我没有找到解决方案 –

+0

我也在为这个问题找到解决方案。 –

回答

-4

你可以使用UIDocumentInteractionController来达到这个目的:

@property (retain) UIDocumentInteractionController * documentInteractionController; 


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

检查此答案f或参考:https://stackoverflow.com/a/20601051/2082569

此外,你可以看看Socialize SDK也很容易使用,并与各种社交SDKs集成。检查这些文件,以WhatsApp的共享:http://socialize.github.io/socialize-sdk-ios/whatsapp.html

+4

我没有看到设置消息的属性。上面的代码我已经测试过很多次了,只能分享图片。我的问题是**如何分享在一个单一的共享** –

-4

请检查以下项目在GitHub上

https://github.com/salesawagner/SharingWhatsApp

typedef enum{ 
    kSendText = 0, 
    kSendImage, 
    kSendTextWithImage, 
    kSendAudio, 
    kSendCancel 
} options; 
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ 

    switch (buttonIndex) { 
     case kSendText: 
      [[WASWhatsAppUtil getInstance] sendText:@"Text"]; 
      break; 
     case kSendImage: 
      [[WASWhatsAppUtil getInstance] sendImage:[UIImage imageNamed:@"image.jpg"] inView:self.view]; 
      break; 
     case kSendTextWithImage: 
      NSLog(@"Send text with image"); 
     case kSendAudio: 
      [[WASWhatsAppUtil getInstance] sendAudioinView:self.view]; 
      break; 
     default: 
      NSLog(@"Cancel send"); 
      break; 
    } 

} 
+0

你有没有尝试使用上述代码? –

+0

提高您的描述 –

-3

好一个,

当我知道这是不可能的IOS。 但我有一个替代解决方案,您可以通过它共享文本和图像两者。但这是一个棘手或我认为愚蠢的解决方案。

  1. 创建一个视图,您可以在其中放置图像。无论您想要写什么,都可以在该视图上写入文本。
  2. 在代码的帮助下拍摄该视图的屏幕截图。您将获得图像(添加文本和图像的视图图像)。
  3. 只需通过文档交互控制器共享该图像即可。

这只是一个可能的解决方案,如果你想要文本和图像两者。但如果你想与文本共享链接比。 。 。 。 。 。 。

+0

考虑到字体风格可能的区别,屏幕分辨率,字体大小,这不会按预期工作 – Kuba

+0

试试用所有可能的决议。你会发现一个很好的结果 –

17

您可以使用UIActivityViewController共享图像,文本或网址。这里是一个小例子:

NSString *textToShare = @"Enter your text to be shared"; 
UIImage * image = [UIImage imageNamed:@"imagename"]; 

NSArray *objectsToShare = @[textToShare, image]; 

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 


[self presentViewController:activityVC animated:YES completion:nil]; 

运行上面的代码,选择什么应用程序共享,如果你愿意,你可以通过其他媒介也分享。这是苹果' 的默认分享方法

+2

这样“textToShare”字符串不是分享什么应用程序...所以,这不适合我... –

+2

其工作正常,但图像只分享不内容。 – vijay

+0

我们可以在Swift 2中使用它吗? –

1

通常不提及的东西用户实际上并不需要共享文本消息和图像。

如果您的文本包含URL则WhatsApp的应用程序将尝试检索有关URL信息,并显示预览

为了这个工作,你需要做的URL符合Open Graph的协议。这基本上意味着该网址需要在其DOM中包含相关预览数据的元标记

+0

但是,为此,用户将不得不将图像集成到网站的元标签中。用这种方法,用户将只能得到网站的图像,而不是这种情况下的实际产品。 –

相关问题