将图像分享到Whatsapp和Facebook



我已经能够将照片分享到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问题)

的问题是:
  1. Whatsapp尚未提供URL方案来传递图像对象(尚未)。
    看看JBWhatsAppActivity如果你对这个很好奇的话

Via UIDocumentInteractionController

如果您通过 UIDocumentInteractionController 共享图像,那么为了提供Facebook选项,您需要将UTI指定为public.image

的问题是:
  1. public.image UTI将填充你的UIDocumentInteractionController与更多的选项不仅仅是Facebook和Whatsapp。
  2. 用于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。

相关内容

最新更新