直接分享图片到 WhatsApp
Sharing image to WhatsApp directly
我想直接将图像分享到 WhatsApp,而不显示任何中间控制器,例如 UIDocumentInteractionController 或 UIActivityController。
WhatsApp 官方文档对直接分享图片只字未提,乍一看直接分享似乎是不可能的。
但我知道这是可能的。 App Store 中至少有 2 个应用可以做到:
- "Sticky AI"
- 工作流程https://itunes.apple.com/us/app/workflow/id915249334?mt=8
Workflow是怎么做到的?
提前致谢。
更新:我在这里发现了一些有趣的东西:http://resources.infosecinstitute.com/ios-application-security-part-30-attacking-url-schemes/#gref。
存在 "whatsapp://image/%@" url 方案的提示。
通过 LeoNatan@github 找到了解决方案。完美运行。
我这样做了,效果很好。
UIImage *image = [UIImage imageNamed:@"your_image_name"];
NSArray *activityItems = @[image];
UIActivityViewController *activityViewControntroller = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityViewControntroller.excludedActivityTypes = @[];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
activityViewControntroller.popoverPresentationController.sourceView = self.view;
activityViewControntroller.popoverPresentationController.sourceRect = CGRectMake(self.view.bounds.size.width/2, self.view.bounds.size.height/4, 0, 0);
}
[self presentViewController:activityViewControntroller animated:true completion:nil];
我想直接将图像分享到 WhatsApp,而不显示任何中间控制器,例如 UIDocumentInteractionController 或 UIActivityController。
WhatsApp 官方文档对直接分享图片只字未提,乍一看直接分享似乎是不可能的。
但我知道这是可能的。 App Store 中至少有 2 个应用可以做到:
- "Sticky AI"
- 工作流程https://itunes.apple.com/us/app/workflow/id915249334?mt=8
Workflow是怎么做到的? 提前致谢。
更新:我在这里发现了一些有趣的东西:http://resources.infosecinstitute.com/ios-application-security-part-30-attacking-url-schemes/#gref。 存在 "whatsapp://image/%@" url 方案的提示。
通过 LeoNatan@github 找到了解决方案。完美运行。
我这样做了,效果很好。
UIImage *image = [UIImage imageNamed:@"your_image_name"];
NSArray *activityItems = @[image];
UIActivityViewController *activityViewControntroller = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityViewControntroller.excludedActivityTypes = @[];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
activityViewControntroller.popoverPresentationController.sourceView = self.view;
activityViewControntroller.popoverPresentationController.sourceRect = CGRectMake(self.view.bounds.size.width/2, self.view.bounds.size.height/4, 0, 0);
}
[self presentViewController:activityViewControntroller animated:true completion:nil];