我已经能够将照片分享到 Whatsapp,但我这样做的方法是在 UIActivityViewController
中提供 Whatsapp 选项,然后显示 UIDocumentInteractionController
。
从这个 UIDocumentInteractionController
中,我选择 Whatsapp 选项,该选项将用户重定向到 Whatsapp 并使他能够共享照片。
到目前为止我的代码是这样的:
if ([activityType isEqualToString:@"whatsappSharing"]) {
if ([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"whatsapp://app"]]) {
NSString *savePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/whatsAppTmp.wai"];
[UIImageJPEGRepresentation(finalImage, 1.0) writeToFile:savePath atomically:YES];
weakDocumentInteraction = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:savePath]];
weakDocumentInteraction.UTI = @"net.whatsapp.image";
weakDocumentInteraction.delegate = weakSelf;
[weakDocumentInteraction presentOpenInMenuFromRect:CGRectZero inView:weakSelf.view animated:YES];
}
}
我希望能够从 UIActivityViewController
中选择选项并直接显示 Whatsapp。
有没有办法跳过呈现 UIDocumentInteractionController
并以编程方式选择 Whatsapp 应用程序选项的第二部分?
目前,用户必须选择 Whatsapp 选项两次才能分享图片。
PS:我正在使用 UIActivityViewController
因为我也在使用其他事件。
最佳答案
基本上,您想通过 Facebook 或 Whatsapp 分享图片,并提供保存图片的选项。
好吧...让我们慢慢分解这两种最快的方法。
Facebook + Whatsapp
通过 UIActivityViewController
如果您通过 UIActivityViewController
分享图片,那么为了提供 Whatsapp 选项,您需要创建自定义 UIActivity
(See Stackoverflow Question)。
问题是:
- Whatsapp 尚未提供用于传递图像对象的 URL 方案(目前)。
查看JBWhatsAppActivity如果您对此感到好奇。
通过 UIDocumentInteractionController
如果您通过 UIDocumentInteractionController
分享图片,那么为了提供 Facebook 选项,您需要将 UTI 指定为 public.image
.
问题是:
public.image
UTI 将为您的UIDocumentInteractionController
填充更多选项,而不仅仅是 Facebook 和 Whatsapp。- 对于
Save
选项,而不是- 使用
-presentOpenInMenuFromRect:inView:animated:
方法仅显示打开此文件类型的应用... - 您需要使用
-presentOptionsMenuFromRect:inView:animated:
方法来显示选项Save to Album
。 但是这将包括其他选项,例如Mail
等。
- 使用
总结:
如果您只使用 UIDocumentInteractionController
那么您应该接受这样一个事实,即您不能仅 Facebook + Whatsapp + Save(由于上述原因 em>)
如果您使用 UIActivityViewController
并且不想为 Whatsapp 创建自定义 UIActivity
,那么您会被卡住但是...如果您决定使用自定义 UIActivity
,那么您仍然陷入困境,因为没有规定可以使用 UIActivityViewController
与 Whatsapp 共享图像对象。
结论:
似乎没有任何简单的方法可以 Facebook + Whatsapp + 保存选项。
使它复杂化的是 Whatsapp,它迫使您使用 UIDocumentInteractionController
,这似乎是在 Whatsapp 上共享图像的唯一方式(当前)和 由于它的 URL 方案有限,因此在 UIActivityViewController
中提供它没有意义。
此外,依次使用 UIDocumentInteractionController
会让您提供比您想要的更多的选项。
老实说,现在这看起来很惨淡。
关于ios - 将图像分享到 Whatsapp 和 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23921990/