9

ここに画像の説明を入力

私のアプリでは、ユーザーが Instagram 経由で写真を共有できるようにしています。これには、UIDocumentInteractionController の使用が必要です。電話が対応している場合、Airdrop は自動的に検出されます。この「開く」アクション シートから削除するにはどうすればよいですか?

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");
}
4

2 に答える 2

2

私が知る限り、あなたはできません。このオプションも無効にする必要があります。しかし、UIDocumentInteractionController では完全にアクセスできません。私の本のかなり悪い API の経験。

ユーザーがリストでアプリを選択すると、アプリはコールバックを取得します

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

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

ユーザーが AirDrop を選択すると、まったく通知されません。

于 2013-10-03T18:28:40.590 に答える