Ios UIDocumentInteractionController防止在';在'中打开;床单

Ios UIDocumentInteractionController防止在';在'中打开;床单,ios,objective-c,cocoa-touch,uidocumentinteraction,airdrop,Ios,Objective C,Cocoa Touch,Uidocumentinteraction,Airdrop,在我的应用程序中,我允许用户通过Instagram共享照片,这需要使用UIDocumentInteractionController。如果手机支持空投,则会自动检测空投。如何将其从“打开”操作表中删除 即使我使用UIActivityViewController开始共享过程并调用setExcludedActivityTypes:,最终我也必须使用UIDocumentInteractionController,当我这样做时,Airdrop再次出现。以下是点击共享按钮时的代码: NSURL *inst

在我的应用程序中,我允许用户通过Instagram共享照片,这需要使用UIDocumentInteractionController。如果手机支持空投,则会自动检测空投。如何将其从“打开”操作表中删除

即使我使用UIActivityViewController开始共享过程并调用setExcludedActivityTypes:,最终我也必须使用UIDocumentInteractionController,当我这样做时,Airdrop再次出现。以下是点击共享按钮时的代码:

NSURL *instagramURL = [NSURL URLWithString:@"instagram://location?id=1"];

if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"Image.igo"];

    NSData *imageData = UIImagePNGRepresentation(imageToShare);
    [imageData writeToFile:savedImagePath atomically:YES];
    NSURL *imageUrl = [NSURL fileURLWithPath:savedImagePath];
    docController = [[UIDocumentInteractionController alloc] init];
    docController.UTI = @"com.instagram.exclusivegram";
    docController.URL = imageUrl;
    [docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

}
else
{
    NSLog(@"no insta");
}

据我所知,你不能。我还需要禁用此选项。但在UIDocumentInteractionController上,它是完全不可访问的。在我的书中,API的体验非常糟糕

如果用户选择列表中的某个应用,则您的应用将获得回调

-(void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application

-(void)documentInteractionController: (UIDocumentInteractionController *)controller didEndSendingToApplication:(NSString *)application

如果用户选择AirDrop,您根本不会收到通知。

这无法删除,苹果仍在尝试让AirDrop在任何地方都可以访问,因此我们可能不得不在未来的几个地方看到这一点。从7.1更新开始,无论空投状态如何(在设备上打开或关闭),它都肯定会出现在UIDocumentInteractionController中

还有一件糟糕的事情是空投共享没有回调,这意味着你的应用程序永远不知道共享状态。以下2名代表将不参与共享

-(void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application

-(void)documentInteractionController: (UIDocumentInteractionController *)controller didEndSendingToApplication:(NSString *)application

我希望苹果会在未来的版本中公开一些委托方法,使之成为可能。

我注意到的一件事是,即使我和房间里的人打开了AirDrop,点击AirDrop通常也不会成功。有同样的问题。