5

我目前正在使用 UIDocumentInteractionController 来打开功能。当它打开时,它会显示设备上可以处理该文件类型的所有应用程序的列表。

有没有办法禁用我的应用程序向特定应用程序发送文档,即使它们支持该文件类型?例如 - 如果我在我的应用程序中打开了一个 PDF 文件并且 iBooks 在 iPad 上,如果我点击 UIDocumentInteractionController 中的 iBooks 图标,我不希望它发送到应用程序。

理想情况下 - 我认为这是建立一个黑名单(或白名单)。例如,这样做会很棒:

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


    // if app is blacklisted
    if ([application isEqualToString:@"com.schimera.WebDAVNavigator"]) {
        [self.interactionController dismissMenuAnimated:YES];
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"FAIL" message:@"NO" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];

        return
    }
}

然而,即使它是“黑名单”,文档仍然会发送到应用程序。

这种方法完全可能吗?

干杯!

4

2 回答 2

2

如果应用被列入黑名单,请将 UIDocumentInteractionController 的 URL 更改为无效值。在方法-[UIDocumentInteractionControllerDelegate documentInteractionController: willBeginSendingToApplication:]中。

-(void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application
{
    if([application isEqualToString:@"com.evilcorp.badapp"){
        controller.URL = nil;
    }
}
于 2013-04-29T17:26:13.737 回答
-1

要在特定应用程序中提供打开文件(作为白名单),只需添加(使用 swift 3.0):

docController.uti = @"com.yourapp.package";
于 2017-02-15T04:54:02.007 回答