与Whatsapp和Facebook分享图片

Luc*_*ene 12 objective-c ios uidocumentinteraction whatsapp uiactivityviewcontroller

我已经能够与Whatsapp分享照片,但我这样做的方法是在a中提供Whatsapp选项UIActivityViewController,然后显示一个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];
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够从a中选择UIActivityViewController并直接显示Whatsapp.

有没有办法跳过第二部分呈现UIDocumentInteractionController并以编程方式选择Whatsapp应用程序选项?

目前,用户必须选择两次Whatsapp选项才能共享图像.

PS:我正在使用,UIActivityViewController因为我也在使用其他活动.

sta*_*Man 20

所以基本上,你想通过Facebook或Whatsapp分享图像,并提供保存图像的选项.

好吧......让我们以最快的两种方式慢慢打破这个.


Facebook + Whatsapp

通过 UIActivityViewController

如果您通过UIActivityViewController那时共享图像以提供Whatsapp选项,则需要创建自定义UIActivity (请参阅Stackoverflow问题).

这个问题是:

  1. Whatsapp尚未提供传递图像对象的URL方案(尚未).如果您对此一般感到好奇,请
    查看JBWhatsAppActivity.

通过 UIDocumentInteractionController

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

这个问题是:

  1. public.imageUTI将填充您UIDocumentInteractionController有很多的不仅仅是Facebook和WhatsApp的更多的选择.
  2. 对于Save选项,而不是
    • 使用-presentOpenInMenuFromRect:inView:animated:仅显示打开此文件类型的应用程序的方法...
    • 您需要使用-presentOptionsMenuFromRect:inView:animated:方法才能显示该选项Save to Album.但这将包括其他选项,如Mail等.

摘要:

如果你只使用UIDocumentInteractionController那时你应该接受这样一个事实:你不能显示Facebook + Whatsapp + Save(由于上面提到的原因)

如果您使用UIActivityViewController并且不想UIActivity为Whatsapp 创建自定义,那么您就会被卡住但是 ......如果您决定使用自定义,UIActivity那么您仍然会被卡住,因为没有使用Whatsapp共享图像对象的规定UIActivityViewController.

结论:

似乎没有要到有没有简单的方法只是 Facebook的WhatsApp的+ +保存选项.

令它变得复杂的是Whatsapp迫使你使用UIDocumentInteractionController它似乎是在Whatsapp(目前)上分享图像的唯一方法,并且由于它有限的URL方案,没有必要提供它UIActivityViewController.

此外,UIDocumentInteractionController轮流使用可以提供比您想要的更多选项.

老实说,现在看起来非常暗淡.