ios - pas - telecharger airdrop




Comment détecter UIWebview drop dans iOS 11? (2)

Les protocoles UIDragInteractionDelegate & UIDropInteractionDelegate sont ce que vous cherchez.

Vérifiez cela aussi: Comment faire pour déposer des images dans UIViewController avec UIDropInteraction (Ep 1)

J'ai un UIWebView . ios11 implémenter la ios11 glisser-déposer d' ios11 . Lorsque je fais glisser un élément de Safari et le dépose dans mon UIWebView , je veux savoir quelle méthode de délégué sera appelée. Aucune suggestion?


La plupart des fonctionnalités de UIWebview sont implémentées dans une classe non documentée appelée UIWebBrowserView. C'est cette vue dont la propriété 'interactions' est définie et le délégué de ces interactions est défini sur ce même UIWebBrowserView.

Selon vos besoins, il y a 3 options pour détecter la chute:

1) Vous pouvez utiliser javascript dans le contenu de la vue Web pour détecter la baisse. Cela ressemblerait à quelque chose comme:

document.addEventListener('drop', function() {
     // Drop detected
} ) ;

2) Vous pouvez désactiver les interactions de suppression dans UIWebBrowserView. Cela leur permettra de se propager dans l'une des vues contenant, et vous pouvez y ajouter vos propres interactions. Cela ressemblerait à:

webView.scrollView.subviews[0].interactions = @[] ;  

Une fois que vous avez fait cela, vous pouvez créer vos propres interactions et les ajouter à la vue du conteneur:

 UIDropInteraction *dropInteration = [[UIDropInteraction alloc]initWithDelegate:myController] ;
 [webView addInteraction:dropInteration] ;
 webView.userInteractionEnabled = YES ;

Vous devez ensuite implémenter la fonctionnalité UIDropInteractionDelegate dans 'myController'

3) Vous pouvez faire pivoter UIWebBrowserView et remplacer les méthodes UIDropInteractionDelegate par les vôtres.





ios11