2013-10-02 10 views
9

enter image description hereUIDocumentInteractionController Prevent zrzut w „Open w” arkusza

W moim app, mam dzięki czemu użytkownicy mogą udostępniać zdjęcia poprzez Instagram, która wymaga użycia UIDocumentInteractionController. Airdrop jest wykrywany automatycznie, jeśli telefon go obsługuje. Jak usunąć go z tego arkusza akcji "Otwórz w"?

Nawet jeśli rozpoczynam proces udostępniania za pomocą UIActivityViewController i wywołuję setExcludedActivityTypes :, w końcu muszę użyć UIDocumentInteractionController, a kiedy to zrobię, ponownie pojawi się Airdrop. Oto kod po kliknięciu przycisku udostępniania:

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

Mając ten sam problem. – n13

Odpowiedz

2

O ile mogę powiedzieć, nie można. Muszę również wyłączyć tę opcję. Ale na UIDocumentInteractionController jest całkowicie niedostępny. Bardzo złe wrażenia z interfejsu API w mojej książce.

Jeśli użytkownik wybierze aplikację na liście swoją App Pobiera funkcji zwrotnych

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

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

Jeśli użytkownik wybierze zrzut nie otrzymywać powiadomienia w ogóle.

+0

Jedną z rzeczy, które zauważyłem, jest to, że stukanie AirDrop często nie działa nawet wtedy, gdy ja i ktoś w pokoju włącza go. – EHNole

0

Tego nie można usunąć, a Apple nadal próbuje udostępnić zrzut wszędzie, więc może będziemy musieli to zobaczyć w kilku kolejnych miejscach w przyszłości. Od aktualizacji 7.1, na pewno wejdzie w UIDocumentInteractionController niezależnie od stanu zrzutu (włączania lub wyłączania na urządzeniu).

I jeszcze jedno złe rzeczy - nie ma połączenia zwrotnego do udostępniania zrzutów, co oznacza, że ​​aplikacja nigdy nie wie o statusie udostępniania . Delegat poniżej 2 nie będzie działał na rzecz udostępniania.

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

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

Mam nadzieję, że jabłko ujawni jakąś metodę delegowania, aby było to możliwe w przyszłych wersjach.

Powiązane problemy