我正在使用以下代码通过WhatsApp共享图像
-(void)shareImageUsingDocumentController:(UIImage *)image fileName:(NSString *)fileName UTI:(NSString *)UTI completion:(void (^)(SharingResult sharingResult))completion
{
if (completion)
{
self.shareCompleted = completion;
}
self.documentInteractionController = nil;
self.documentInteractionController = [[UIDocumentInteractionController alloc] init];
NSURL *localUrl = [self writeLocalFileFromUIImage:image fileName:fileName];
if (localUrl != nil) {
self.documentInteractionController.URL = localUrl;
self.documentInteractionController.UTI = UTI;
self.documentInteractionController.delegate = self;
[self presentDocumentIneractionController];
}
}
-(UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
{
return self.presentingViewController;
}这是来自BDSshare library的,我在一个Swift应用程序中使用它。我用这段代码调用函数。
img: UIImage = self.loadImage()
BDGShare.shared().shareImage(usingDocumentController: img, fileName: "whatsAppTmp.wai", uti: "net.whatsapp.image") {(SharingResult) -> Void in
// Handle share result...
self.handleShareResult(shareTarget.type, shareResult: SharingResult)
}我遇到的问题是,我在控制器中看到WhatsApp的两个图标。

有人知道为什么这里会有两个WhatsApp图标吗?我已经到处找了,我找不到任何跟我不一样的帖子我也找不到任何人提到拥有多个WhatsApp图标的问题。如果我使用第一个图标(标记为'WhatsApp'),那么它实际上不能工作。我选择一个联系人,然后点击send,我就会看到一个屏幕,里面有文件名。使用第二个按钮(标记为'Copy to WhatsApp'),我选择了一个联系人,我在黑屏上看到了带有标题的文本条目的图像。
我更愿意跳过选择器,直接转到WhatsApp,但我只满足于一个按钮(当然是可以工作的那个)。
蒂娅·迈克
发布于 2017-07-26 22:53:09
原来我忘了WhatsApp是默认支持的服务之一。所以我看到的是缺省项,也就是我通过使用WhatsApp的UTI调用UIDocumentInteractionController添加的项。因此,我从相同的BDGShare库切换到shareImageUsingActivityController,这一切都很好。
麦克
发布于 2017-08-29 12:37:09
我认为Whatsapp有问题,我也有同样的问题,但在我的例子中,当你分享.wai类型的图像时,你看不到图像预览,它显示了一个文本"whatsapp image exclusive“。我的解决方案是这样的组合:
UTI = @"net.whatsapp.image";
nameOfTemporalFile = @"WhatsAppimage.jpeg"; 而不是
nameOfTemporalFile = @"WhatsAppimage.wai";https://stackoverflow.com/questions/45314000
复制相似问题