2016-06-23 5 views
2

Я хочу найти приложение, к которому пользователь поделился с помощью панели общего доступа iOS. Для этого я реализую метод documentInteractionController UIDocumentInteractionControllerDelegate: willBeginSendingToApplication:UIDocumentInteractionControllerDelegate методы, которые не вызываются при совместном использовании с расширением общего доступа к приложению

-(IBAction) onOpenWithClicked:(id)sender 
    {  
       NSURL* savedURL = [self getURL]; 

       self.interactionController = [UIDocumentInteractionController interactionControllerWithURL:savedURL]; 
       self.interactionController.delegate = self; 

       [self.interactionController presentOpenInMenuFromRect:self.openWithButton.frame 
                   inView:self.shareView 
                  animated:YES]; 
    } 

- (void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application 
    { 
      NSLog(@"Sharing to application %@", application); 
    } 

Но проблема в том, что этот метод делегата не вызывался, когда акции пользователя для расширения поделись приложения. Однако, это не вызывается, когда пользователь разделяет к основному приложению в панели доли

Пожалуйста, дайте мне знать, если есть другой способ, чтобы узнать, какие приложения расширения доли используются пользователем в панели доли IOS

+0

Буду признателен, если кто-то сможет ответить на мой запрос. – Rahul

ответ

0

Невозможно обнаружить. Точно так же невозможно обнаружить системные приложения (Notes, share на facebook, airdrop, ...). В основном все, что отображается как оверлей, а не переходить в другое приложение, не будет уведомлено в этом делетете. Посмотрите здесь: willBeginSendingToApplication not called when open EverNote or any other extention

Я даже попробовал подклассификацию UIDocumentInteractionController и повторил реализацию таких методов, как actionSheet:clickedButtonAtIndex. Ничего.