2015-04-20 537 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

但是,爲此,用戶將不得不將圖像集成到網站的元標籤中。用這種方法,用戶將只能得到網站的圖像,而不是這種情況下的實際產品。 –

相關問題