使用UIDocumentINteractionController直接自动打开WhatsApp,而不显示其他应用程序

时间:2016-10-07 06:52:42

标签: ios objective-c image uidocumentinteraction socialshare

我正在向其他应用开发共享图片,包括WhatsApp。 我使用此代码并且有效。

if ([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"whatsapp://app"]]){
    UIImage *image = [self processImage:sender];

    NSString *savePath  = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/whatsAppTmp.wai"];

    [UIImageJPEGRepresentation(image, 1.0) writeToFile:savePath atomically:YES];


    _documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:savePath]];
    _documentInteractionController.delegate = self;
    _documentInteractionController.UTI = @"net.whatsapp.image";
    [_documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];


}else {
    [self showAlertTitle:@"WhatsApp not installed." message:@"Your device has no WhatsApp installed."];
}

问题是,当我运行此代码时,documentInteractionController会显示其他选项应用,例如image,所以我必须在打开WhatsApp应用程序之前先选择WhatsApp。

我可以选择Whatsapp App来共享文件而不显示选择菜单吗?换句话说,我可以避免presentOpenInMenuFromRect吗?

我正在使用iOS 9,这个问题也发生在我的Instagram帖子

1 个答案:

答案 0 :(得分:2)

是。您可以编写this代码。运行代码后执行以下操作。

步骤:1在Info.plist中添加LSApplicationQueriesSchemes

步骤:2在项目中添加whatsapp。