ios – 分享图片到Whatsapp&Facebook

前端之家收集整理的这篇文章主要介绍了ios – 分享图片到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分享一个图像,并提供一个保存图像的选项.

好吧,让我们慢慢地打破这2个最快捷的方式.

Facebook Whatsapp

通过UIActivityViewController

如果您通过UIActivityViewController共享映像,那么为了提供Whatsapp选项,您需要创建一个自定义的UIActivity(See Stackoverflow Question).

这个问题是:

> Whatsapp还没有提供一个传递图像对象的URL方案(还有).
看看JBWhatsAppActivity,如果你对这一般很好奇.

通过UIDocumentInteractionController

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

这个问题是:

> public.image UTI将填充您的UIDocumentInteractionController与更多的选项,而不仅仅是Facebook和Whatsapp.
>保存选项,而不是

>使用-presentOpenInMenuFromRect:inView:animated:仅显示打开此文件类型的应用程序的方法
>您需要使用-presentOptionsMenuFromRect:inView:animated:方法才能显示保存到相册的选项.但这将包括其他选项,如邮件

概要:

如果你只使用UIDocumentInteractionController,那么你应该接受你不能只显示Facebook Whatsapp Save(由于上述原因)

如果您使用UIActivityViewController并且不想为Whatsapp创建一个自定义的UIActivity,那么您将被卡住但是…如果您决定使用自定义的UIActivity,那么您仍然卡住,因为没有任何条款可以共享图像对象Whatsapp使用UIActivityViewController.

结论:

只有Facebook Whatsapp保存选项似乎没有任何简单的方法.

这使得它变得复杂的是Whatsapp,这迫使你使用UIDocumentInteractionController,这似乎是在Whatsapp(当前)上共享一个映像的唯一方法,并且由于它是有限的URL方案,在UIActivityViewController中没有任何意义.

此外,使用UIDocumentInteractionController反过来会导致您提供比您想要的更多选项.

老实说,现在看起来很惨淡.

猜你在找的iOS相关文章