我已经能够将照片分享到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
Via UIActivityViewController
如果你通过 UIActivityViewController
分享图像,那么为了提供Whatsapp选项,你需要创建一个自定义的UIActivity
(参见Stackoverflow问题)。
- Whatsapp尚未提供URL方案来传递图像对象(尚未)。
看看JBWhatsAppActivity如果你对这个很好奇的话
Via 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 (由于上面提到的原因)
如果你使用UIActivityViewController
,不想为Whatsapp创建一个自定义的UIActivity
,那么你就卡住了但是…如果你决定使用自定义UIActivity
,那么你仍然卡住了,因为没有规定使用UIActivityViewController
与Whatsapp共享图像对象。
结论:
似乎没有任何简单的方法来拥有只是 Facebook + Whatsapp +保存选项。
复杂的事情是Whatsapp,它迫使你使用UIDocumentInteractionController
,这似乎是唯一的方式来分享Whatsapp上的图像(目前) 和由于它的有限的URL方案,没有必要提供它在UIActivityViewController
。
此外,轮流使用UIDocumentInteractionController
会导致您提供比您想要的更多的选项。
老实说,现在看起来很凄凉。
好吧,如果我以正确的方式理解问题,有一个选项可以通过1 UIDocumentInteractionController
轻松分享,请查看我的旧问题&答:https://stackoverflow.com/a/20887254/849616。